Thread overview
Make function nothrow
Jan 28, 2016
ref2401
Jan 28, 2016
Ali Çehreli
Jan 28, 2016
ref2401
January 28, 2016
There are functions in Phobos that do not throw but they are not marked as `nothrow`.
When I need to call them from my `nothrow` code I do this:

void foo() { /* I won't throw, honestly. */ }

void bar() nothrow {
	scope(failure) assert(false);
	foo();
}

The question is: Is it ok to do such thing or should I just stick with try {} catch() {}?
Thank you.

January 28, 2016
On 01/28/2016 08:05 AM, ref2401 wrote:
> There are functions in Phobos that do not throw but they are not marked
> as `nothrow`.
> When I need to call them from my `nothrow` code I do this:
>
> void foo() { /* I won't throw, honestly. */ }
>
> void bar() nothrow {
>      scope(failure) assert(false);
>      foo();
> }
>
> The question is: Is it ok to do such thing or should I just stick with
> try {} catch() {}?
> Thank you.
>

There is assumeWontThrow which terminates if an exception is indeed thrown:

  http://dlang.org/library/std/exception/assume_wont_throw.html

Ali

January 28, 2016
On Thursday, 28 January 2016 at 16:22:23 UTC, Ali Çehreli wrote:
> There is assumeWontThrow which terminates if an exception is indeed thrown:
>
>   http://dlang.org/library/std/exception/assume_wont_throw.html
>
> Ali

nice one, thx