Change the name of ArrayBoundsException in druntime

Robert Fraser fraserofthenight at gmail.com
Thu Oct 23 18:56:32 PDT 2008


Sergey Gromov wrote:
> Fri, 24 Oct 2008 08:54:49 +0900,
> Bill Baxter wrote:
>> On Fri, Oct 24, 2008 at 6:47 AM, Andrei Alexandrescu
>> <SeeWebsiteForEmail at erdani.org> wrote:
>>> Sergey Gromov wrote:
>>>> Thu, 23 Oct 2008 14:44:46 -0500,
>>>> Andrei Alexandrescu wrote:
>>>>> Sorry, I meant to catch Exception. My point was, if I want to print an
>>>>> informative message, the exception should be able to provide it without
>>>>> having to encode it in its type.
>>>> It's all nice and simple until you want to localize.  Then all your
>>>> 'informative compiler-provided messages' appear as garbage to a non-
>>>> English-speaking user.  They need to be translated somehow.  And the
>>>> translation is likely to be based upon the context, not upon an arbitrary
>>>> string exception contains.
>>> No, translation would have to be provided via a string table. And guess who
>>> provides the key for that table.
>> But what Sergey is pointing out is that
>> 1) if you rely on a human readable string for the key, then you have
>> to fix things when some maintenance programmer fixes a spelling error
>> in the message
>> 2) if you rely on human readable strings in that are in 3rd party
>> libraries then you have to find all those strings some how.  Could be
>> difficult without source.
>>
>> So if you're going to translate then having an actual key, a unique
>> identifying symbol not meant for human consumption, is a better
>> approach.
> 
> Correct.  Thank you for putting this together.  But there is even more to 
> it than that: the library exceptions are usually too low-level and too 
> specific to spit at the user as is.  They need to be analysed and 
> converted into a more appropriate form or action.  And exception must 
> provide means for such analysis other than message string parsing.

Right -- and what action the program was taking to cause the exception 
also must be taken into account.



More information about the Digitalmars-d mailing list