> From: Martin Brown <[EMAIL PROTECTED]> > > Hi, > > Regarding the OS error code / exception type debate; I > may have missed something here, so apologies if I > have. Speaking as a user of your wonderful > libraries: > > 1. I need all the data available - the error may be > happening on a computer in Japan and the data may be > filtered through many layers of sales and support.
All of what data? Full stack traces and memory dumps for instance? Do you think it's reasonable for a library to provide this much data, or is it the responsibility of the application? What's the minimal amount of information that you think must be provided by the library? > 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? > 3. Most errors are for the user to deal with. Many > problems are simply due to configuration (e.g. > permissions) or interaction with other software (e.g. > virus scanners). Auto-recovery is often only > possible to a limited extent. > > 4. Exception object types are useful for > auto-recovery, but are less important when generating > a message for a user. Interesting view point. > (1) implies that the error reporting system cannot > destroy any information (e.g. representing many error > codes in a single exception object with no way to get > at the original code). What I'm not convinced about here is the fact that error codes are system dependant. More importantly, most of them can be accessed by calling a system specific function or other mechanism (errno and GetLastError are examples). (OK, these mechanisms are a little fragile since the "last error" can be changed if intermediate exception handlers called methods which also set the errno... but such exception handlers *could* be made to not do this.) So with out a "standard" mechanism for reporting error messages, I'm not sure that carrying a non-portable error code is truly beneficial. And with a "standard" error reporting mechanism it may be that what() alone would meet all usage requirements. I think finding a solution to this problem would be nice, but I'm not about to be the one to tackle it, and it would be a seperate library any way. So I'm left with a lot of vague "wishes" that I can't meet alone, and no concrete consensus of what a "minimal" solution should be. > (2) & (3) imply that OS error codes must be available > for generating a message using the OS facilities. It > is pointless having a boost set of error codes, as > this would require boost writing and maintaining > localised error messages. But there will be non-OS errors that have to be reported as well. How do you intend to deal with both types? > (4) implies that I still want exception types so I can > recover when possible, but there must be a way of > getting the OS error code. What if there's not an OS error code? William E. Kempf [EMAIL PROTECTED] _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost