On Wednesday, 10 May 2017 at 15:35:24 UTC, k-five wrote:
On Wednesday, 10 May 2017 at 14:27:46 UTC, Stanislav Blinov wrote:
On Wednesday, 10 May 2017 at 13:27:17 UTC, k-five wrote:

Thanks, but I know about what are you saying. The user_apply[4] has so many possibilities and I cannot use if-else

That doesn't sound right. Either you've already handled all the possible cases and thus expect the to! to not throw (can specify that i.e. via std.exception.assumeWontThrow), or, as you're saying, it's much more than an if-else, but in that case exception will be thrown on invalid input.

------------------------------------------------------------------

I know. But I am saying that I do not want to take care of any exceptions.
I just wanted to write:

int variable = to!int( string-type );

In fact something like using "no throw" is a function:
void init( ... ) nothrow {
    ...
    int variable = to!int( string-type );
    ...
}

but this is not valid.

Thanks anyway and I will test: Function std.exception.assumeWontThrow at this link:
https://dlang.org/library/std/exception/assume_wont_throw.html

I don't understand. If you don't want to take care of exceptions, then you just don't do anything, simply call to!int(str). If an exception is thrown, it'll propagate further up the stack, until you either handle it or abort the program. "nothrow" does not turn off exceptions, it simply forbids throwing them in the enclosing scope (i.e. calling anything that might throw is not allowed). Or do you mean that you've already made sure that the user input is valid such that to!int() will never throw with it? In that case, yes, assumeWontThrow is a way to express that. But then, the only way you can be sure of that is if you've already parsed the input yourself, so I'm not clear on the intent. Alternatively, if what you're calling still might throw but you don't want to deal with try/catch blocks, there's collectException function in std.exception that'll give you the exception if it was thrown and let you deal with it without using try/catch.

Reply via email to