At 03:15 PM 1/10/2003, William E. Kempf wrote:
>> From: Beman Dawes <[EMAIL PROTECTED]>
>> At 11:18 AM 1/10/2003, William E. Kempf wrote:
>>  >> From: David Abrahams <[EMAIL PROTECTED]>
>>  >> "William E. Kempf" <[EMAIL PROTECTED]> writes:
>>  >> >> From: Martin Brown <[EMAIL PROTECTED]>
>>  >> >>
>>  >> >> 2. The user needs a localised error message.
>>  >> >
>>  >> > Is the textual representation of the exception name
>>  >> > enough?  If not, how do you propose a library provide
>>  >> > such a localised error message?
>>  >>
>>  >> I will weigh in here with one strong opinion: producing localized
>>  >> error messages should not be the job of the exception object or the
>>  >> code which throws it.  Error message formatting and localization
>>  >> should happen after exceptions are caught.
>>  >
>>  >Full agreement.  But what (if anything) must the exception object
>>  >provide in order for the exception handlers to be able to format
>>  >a localized message?
>> 
>> Peter Dimov and I went back and forth about this for the filesystem library 
>> and decided:
>> 
>>        ... what() // from std::runtime_error. Implementation provides
>>                   // a very explicit message, including who(), path1(),
>>                   // path2(), and message reported by O/S (which is
>>                   // subject to locale on some O/S's.
>> 
>>        int native_error() const;
>>        // a return of 0 implies a library (rather than system) error
>> 
>>        error_code error() const;  // filesystem defined error code
>> 
>>        const std::string &  who() const; // name of func throwing exception
>> 
>>        const path & path1() const; // argument 1 to func; may be empty()
>>        const path & path2() const; // argument 2 to func; may be empty()
>> 
>> That's pretty heavyweight, but each function has important uses.
>
>This description brings a better understanding than what I had previously, but 
>doesn't fill in all the gaps.
>
>What's the purpose of a non-native error code?  For that matter, if what() includes a 
>translated message for the error code, what purpose is there for the native error 
>code?

For platform-specific error recovery?

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to