我在C#中找不到"is not"运算符.例如,我有下面的代码不起作用.我需要检查它err不是类型类ThreadAbortException.
catch (Exception err)
{
if (err is not ThreadAbortException)
{
}
}
Run Code Online (Sandbox Code Playgroud)
Nic*_*ver 35
在这种情况下,包装并检查对面的布尔值:
if (!(err is ThreadAbortException))
Run Code Online (Sandbox Code Playgroud)
Lee*_*Lee 35
只需将catch块更改为:
catch(ThreadAbortException ex)
{
}
catch(Exception ex)
{
}
Run Code Online (Sandbox Code Playgroud)
所以你可以分别处理ThreadAbortExceptions和所有其他的.
在这种情况下你应该做的很多事情是:
try
{
// Do Something
}
catch (ThreadAbortException threadEx)
{
// Do something specific
}
catch (Exception ex)
{
// Do something more generic
}
Run Code Online (Sandbox Code Playgroud)
你可以有多个catch块try.始终确保对它们进行排序,使得最具体的位于顶部,并且最通用的(catch (Exception ex))是最后的,因为查找顺序是从上到下,因此如果放置第catch (Exception ex)一个,它将始终是唯一运行的.
| 归档时间: |
|
| 查看次数: |
25254 次 |
| 最近记录: |