On Friday, 14 July 2017 at 20:22:21 UTC, Ali Çehreli wrote:
On 07/14/2017 12:36 PM, ANtlord wrote:
> Hello! I've tried to use nothrow keyword and I couldn't get a
state of
> function satisfied the keyword. I have one more method that
can throw an
> exception; it is called inside nothrow method. Every type of
an
> exception from the throwable method is handled by the nothow
method.
>
> ubyte throwable_fn(ubyte state) {
> if(state < 2) {
> return 1;
> } else if(state == 3) {
> throw new MyException1("qwe");
> } else {
> throw new MyException2("asd");
> }
> }
Although it's obvious to us that there are only those two
exceptions, the compiler cannot in general know that.
Not in general, no, but if the function's body (and the body of
all functions it calls) are available, the compiler can aggregate
the exception set and indeed perform a more precise nothrow
analysis.