On Sunday, 28 September 2014 at 20:58:20 UTC, H. S. Teoh via
Digitalmars-d wrote:
That's why I said, an uncaught exception is a BUG. The only
place where
user-readable messages can be output is in a catch block where
you
actually have the chance to localize the error string. But if
no catch
block catches it, then by definition it's a bug, and you might
as while
print some useful info with it that your users can send back to
you,
rather than unhelpful bug reports of the form "the program
crashed with
error message 'internal error'".
Pretty much every system should generate a localized error
message for the user and a detailed log of the problem for the
programmer. Ideally, the user message will indicate how to
provide the detailed information to the developer so the problem
can be fixed.
The one case where uncaught exceptions aren't really a bug is
with programs that aren't being used outside the group that
developed them. In these cases, the default behavior is pretty
much exactly what's desired--a message, file/line info, and a
stack trace. Which is why it's there. The vast bulk of today's
shipping code doesn't run from the command line anyway, so the
default exception handler should be practically irrelevant.