很简单,我的代码中到处都有catch(Exception e)
。
但是,我想要一种不会被这种捕获物捕获的类型。
我查找了所有类型并尝试了大部分类型,它们似乎都被捕获了... SystemException等。
我怎么能抛出跳过这个捕获的错误?
答案 0 :(得分:1)
你做不到。但是,您可以采用catch块不执行任何操作的方式进行编码,或者您可以将必须发生的事情放入finally块中
答案 1 :(得分:1)
在C#6.0中,您可以定义允许您执行所需操作的异常过滤器,但如果您需要这样做,则可能需要解决问题的真正根源。
try
{
...
}
catch (Exception ex) if (ex.GetType() != typeof(YourExceptionToIgnore))
{
...
}
仅供参考,在框架指南中建议捕获类型Exception
的异常 - 如本文其他地方所述,您应该只捕获您希望引发的特定异常类型。
答案 2 :(得分:0)
我想要一个不会被这个捕获物捕获的类型
在catch(Exception e)
之前抓住您想要的更具体的“类型”。这样,您就可以专门处理Exception
答案 3 :(得分:0)
正如其他人所建议的那样,您应该只按照推荐的做法捕获特定类型的异常。虽然您可以使用最新版本的C#6中提供的异常过滤器。
try
{
// Some exception
}
catch (Exception e) if (e.Getype() != typeof(YourCustomException))
{
// handle exception except of type YourCustomException
}
答案 4 :(得分:0)
您可以在catch
内尝试空switch-case
或catch
。