What&#39;s wrong with stack traces in short scripts?  I use D all the time for short (&lt; a few hundred lines) scripts and sometimes I use Python instead when I need a library that&#39;s not easily available in D or need to share my code with Python hackers.  I honestly prefer Python&#39;s &quot;always print a stack trace&quot; to D&#39;s &quot;make me fire up a debugger&quot; for anything over ~50 lines (the point where I start to use functions instead of just writing all my code inline in main()).<br>
<br><div class="gmail_quote">On Fri, Jul 30, 2010 at 11:52 AM, Andrei Alexandrescu <span dir="ltr">&lt;<a href="mailto:andrei@erdani.com">andrei@erdani.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">Steve Schveighoffer wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Um, no.  Exceptions can easily be uncaught (oops, forgot a try catch!).  I don&#39;t want the end result of an uncaught exception to be a bug that&#39;s impossible or difficult to determine because no stack trace was printed.  Let&#39;s consider that an exception may not be easily repeated and is most likely encountered by a user, not a developer.  Giving a mechanism to communicate the problem as completely as possible from the user developer should be the default.<br>

<br>
We should classify any exception or error that gets thrown outside of main to be an exception that was not planned for by the developer, and therefore a program error.  This should trigger as much info as possible, definitely including a stack trace, and possibly a core dump (though, dumping core after catching an exception is next to useless).<br>

<br>
If you want to avoid printing stack traces, catch the exception inside of main.  I don&#39;t think it&#39;s too much to ask.<br>
</blockquote>
<br></div>
That argument goes both ways, i.e. I could tell you it&#39;s not much to ask to insert a try/catch if you care about the stack trace.<br>
<br>
It comes back to doing a sensible thing by default. main() without a try/catch is common in short scripts. I am currently _exceedingly_ happy that I&#39;m able to write 10-line scripts that do something interesting and behave reasonably in all circumstances. Obviously, a stack trace is not something anyone would be interested in for a short script. You are saying that I should take a size hit in order to protect you from adding 6 lines to a 100,000 lines program.<br>

<br>
D should be script-friendly, it&#39;s a huge boon and a huge appeal, and stack traces don&#39;t go with script friendliness. Serious programs can afford the slight overhead.<br>
<br>
See my point?<br><font color="#888888">
<br>
<br>
Andrei</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
phobos mailing list<br>
<a href="mailto:phobos@puremagic.com" target="_blank">phobos@puremagic.com</a><br>
<a href="http://lists.puremagic.com/mailman/listinfo/phobos" target="_blank">http://lists.puremagic.com/mailman/listinfo/phobos</a><br>
</div></div></blockquote></div><br>