Program logic bugs vs input/environmental errors

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Sat Sep 27 16:42:18 PDT 2014


On 9/27/2014 4:33 PM, bearophile wrote:
> Walter Bright:
>
>> As for the programmer wanting to know where the message "missing }" came from,
>>
>>     grep -r dmd/src/*.c "missing }"
>>
>> works nicely. I do that sort of thing all the time. It really isn't a problem.
>
> grep is not useful for the purposes explained in issue 13543 because the file
> name is often inside a string variable, that is initialized elsewhere or
> generated in some way. So the exception is useful to know where's the
> instruction in user code that has tried the failed I/O action, as I've explained
> in that issue.

Even if that is what you wanted, you won't get that from FileException, as it 
will only show file/lines emanating from calls inside std.file, not from higher 
level callers.

Besides, take a bit of care when formulating a string for exceptions, and you 
won't have any trouble grepping for it. This isn't rocket science.

Presenting internal debugging data to users for input/environmental errors is 
just bad programming practice. We shouldn't be enshrining it in Phobos and 
presenting it as a professional way to code.



More information about the Digitalmars-d mailing list