On 10/1/14 11:00 AM, Andrej Mitrovic via Digitalmars-d wrote:
On 10/1/14, Steven Schveighoffer via Digitalmars-d
<digitalmars-d@puremagic.com> wrote:
No, this is lazy/incorrect coding. You don't want your user to see an
indecipherable stack trace on purpose.

So when they file a bug report are you going to also ask them to run
the debugger so they capture the stack trace and file that to you?
Come on.


No what I mean is:

./niftyapp badfilename.txt

Result should be:

Error: Could not open badfilename.txt, please check and make sure the file exists and is readable.

Not:

std.exception.ErrnoException@std/stdio.d(345): Cannot open file `badfilename.txt' in mode `rb' (No such file or directory)
----------------
5 testexception 0x0000000104fad02d ref std.stdio.File std.stdio.File.__ctor(immutable(char)[], const(char[])) + 97
6   testexception                       0x0000000104f8d735 _Dmain + 69
7 testexception 0x0000000104f9f771 void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll().void __lambda1() + 33 8 testexception 0x0000000104f9f6bd void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) + 45 9 testexception 0x0000000104f9f71d void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() + 45 10 testexception 0x0000000104f9f6bd void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) + 45
11  testexception                       0x0000000104f9f639 _d_run_main + 449
12  testexception                       0x0000000104f8d75c main + 20
13  libdyld.dylib                       0x00007fff8fb2a5fd start + 1
14  ???                                 0x0000000000000001 0x0 + 1

If it's an error due to *user input*, you should not rely on the exception handling of the runtime, you should have a more user-friendly message.

Obviously, if you fail to handle it, the full trace happens, and then you must fix that in your code.

It's for your benefit too :) This way you get less nuisance troubleshooting calls since the error message is clearer.

-Steve

Reply via email to