C#在使用return时捕获bool异常

Jad*_*e M 2 c# try-catch

我正在使用下面的代码,偶尔boolUpdate不是TRUE或FALSE我得到一个异常,我不能用TRY CATCH块来包围它,因为它使用'return',我怎么能正确地捕获它?

if (!Boolean.Parse(boolUpdate)) return true;
Run Code Online (Sandbox Code Playgroud)

Ahm*_*eed 20

如何使用Boolean.TryParse呢?

bool result = false;
Boolean.TryParse( boolUpdate, out result );
return !result;
Run Code Online (Sandbox Code Playgroud)


Bob*_*man 9

首先,一般情况:仅仅因为你退出一个块并不意味着你不能把它放在try/catch中:

try
{
    if ( whatever )
        return true;
}

catch ( Exception E )
{
    HandleMyException( E );
    return false;
}
Run Code Online (Sandbox Code Playgroud)

......这完全合法.与此同时,正如其他海报所写的那样,TryParse()在这个具体案例中可能就是你想要的.

  • 捕获中的异常E是不必要的. (3认同)

csh*_*net 6

仅当字符串为"true"且不生成异常时,以下内容才会返回true.

        bool value;
        return bool.TryParse(boolUpdate, out value) && value;
Run Code Online (Sandbox Code Playgroud)