我需要检查异常是否在指定的异常列表中,目前我的代码如下:
catch (Exception ex) {
if ( (ex is Exception1) || (ex is Exception2) || (ex is Exception3) || (ex is Exception4) || (ex is Exception5) ) {
//do something;
}
}
正如您所看到的,语法不是很优雅。有没有更好/更清晰的方法在C#中编写这种类型的表达式?
编辑 - 我正在寻找一些更好的构建语法来将异常视为类型,所以也许我可以构建这些异常的列表,并且只是使用像列表对象包含此ex的东西。无论如何,我认为我现在可以忍受当前的代码。
答案 0 :(得分:1)
public void test()
{
try
{
// do something something
return;
}
catch (Exception1) {}
catch (Exception2) {}
catch (Exception){
return;
}
//do something;
}
不是很漂亮'但它的工作原理..如果遇到任何异常1或异常2,则//do something
将执行。如果遇到另一个异常(由通用Exception
表示),则该方法将返回并且它将不执行任何操作(它将不执行//do something
)。
答案 1 :(得分:0)
我认为你不应该提出这个解决方案。捕获块中的每个异常更好,如下所示:
catch (Exception1 ex) {
}
catch (Exception2 ex) {
}