如何抛出未作为异常捕获的异常

时间:2016-05-11 17:37:10

标签: c# try-catch

很简单,我的代码中到处都有catch(Exception e)。 但是,我想要一种不会被这种捕获物捕获的类型。

我查找了所有类型并尝试了大部分类型,它们似乎都被捕获了... SystemException等。

我怎么能抛出跳过这个捕获的错误?

5 个答案:

答案 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-casecatch

相关问题