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.