On 10/07/2014 04:23 PM, ketmar via Digitalmars-d wrote:
On Tue, 07 Oct 2014 16:08:33 +0200
Timon Gehr via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
What's the point anyway?
non-final try/catch will not make function "nothrow".
import core.exception;
void doStuff(){ }
void main() nothrow{
try{ doStuff(); }
catch(UnicodeException){ }
}
Error: function D main 'main' is nothrow yet may throw
i'm talking about my proposal, where non-final try/catch will not make
function nothrow, only 'final try' will do.
I.e. additional annotation overhead without a point?
and anything that not
catched in this 'final' will abort the program immediately, without any
tries to do unwinding or executing scope() statements.
import core.stdc.stdlib;
void doStuff(){ throw new Exception(""); }
void main() nothrow{
scope(exit) assert(0);
try{ doStuff(); }
catch(Exception){ exit(2); }
}