在什么情况下C#'是'关键字会抛出异常?

gin*_*boy 4 c# exception-handling

我在我们的代码库中偶然发现了以下内容...

    protected bool IsThing(object item)
    {
        try
        {
            return item is Thing;
        }
        catch (Exception)
        {
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果有任何情况catch会被访问,我正在努力解决这个问题?

dca*_*tro 14

is关键字不会抛出异常.这是一种无用的方法,你应该删除它.

if(IsThing(item)) {...}可以而且应该被取代if(item is Thing) { ... }

  • @gingerbreadboy:[其他地方](http://msdn.microsoft.com/en-us/library/cc488006.aspx),它说,"你可以使用[**是**和**作为**]运算符测试一个演员是否会成功而不会引发异常." (2认同)