On Wednesday, 10 May 2017 at 12:40:41 UTC, k-five wrote:
I have a line of code that uses "to" function in std.conv for a purpose like:

int index = to!int( user_apply[ 4 ] ); // string to int

When the user_apply[ 4 ] has value, there is no problem; but when it is empty: "" it throws an ConvException exception and I want to avoid this exception.

currently I have to use a dummy catch:
try{
    index = to!int( user_apply[ 4 ] );
} catch( ConvException conv_error ){
    // nothing
}

I no need to handle that, so is there any way to prevent this exception?

I assume that an empty string is a valid input then.
The question is, what value do you want `index` to have when the string is empty?
Maybe the old value, or some constant?
In any case, to better express your intent, you may write something like:

    if (user_apply[4] != "")
    {
        index = to !(int) (user_apply[4]);
    }
    else
    {
        index = ...;  // specify whatever your intent is
    }

This way, the code is self-documenting, and the program still throws when `user_apply[4]` is neither empty nor an integer, which may be the right thing to do in the long run.

Ivan Kazmenko.

Reply via email to