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