On Jul 29, 2010, at 9:37 PM, Andrei Alexandrescu wrote:

> Sean Kelly wrote:
>> On Jul 29, 2010, at 8:21 PM, Walter Bright wrote:
>>> Andrei Alexandrescu wrote:
>>>> Walter Bright wrote:
>>>>> I think we misunderstand each other. A file copy program that fails due 
>>>>> to, say, the disk being full, should not produce a core dump. It should 
>>>>> produce an error message like:
>>>>> 
>>>>> error: disk full
>>>>> 
>>>>> An uncaught exception is NOT an invalid or crashed program in D.
>>>> I think Sean talks about Throwable objects that are not Exception objects.
>>>> 
>>> It's reasonable for seg fault exceptions to produce a core dump. It isn't 
>>> for recoverable Exceptions, or for non-recoverable ones like out of memory.
>> At the moment, we don't differentiate between seg faults and non-recoverable 
>> errors.  Though seg faults are only thrown as exceptions on Windows which 
>> doesn't have core dumps anyway, as far as I know. For what it's worth, I was 
>> investigating this bug:
>> http://d.puremagic.com/issues/show_bug.cgi?id=4385
> 
> I see. Overall, my opinion is that regular exceptions that escape main(0 
> should simply print their error message to stderr and exit(1). There should 
> be no stack trace, abort(), core dump, or anything worse than that. Print the 
> string and exit(1). Anything more will force most people to actually insert a 
> try/catch in main to do the simple thing.

I think the stack trace at least should remain.  People have been begging for 
that for years, and I do think it's pretty useful.  Simply printing an error 
message says nothing about the context, and it's context that gives error 
messages meaning.

As for core dumps, if the user wants them for unhandled exceptions rather than 
just segfaults, there's currently no way to get them with a D app because 
main() catches everything.  I'm not sure about the merit of failing via abort() 
vs. returning -1, but I do think it's a nice option to have available.  
Personally... I dunno.  I'd mostly want them for segfaults and bus errors, and 
I can do that with signal handlers.  I'd have to defer to someone else on that.
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to