c#在同一个catch块中捕获两个异常?

我有一个方法可以抛出两个不同的异常,CommuncationException和SystemException。在这两种情况下,我都做同样的三行代码块。

try {
 ...
}

catch (CommunicationException ce) {
   ...
}

catch {SystemExcetion se) {
   ... 
}

有可能这样做吗?

try {
   ...
}

catch (CommunicationException ce, SystemException se) {
   ...
}

那么我不必写这么多代码。我知道我可以将异常处理提取到私有方法,但是由于代码只有3行长度,所以方法定义会比身体本身占用更多的代码。

最佳答案
事实上,你可以只捕获SystemException,它也会处理CommunicationException,因为CommunicationException是从SystemException派生出来的

catch (SystemException se) {
   ... //this handles both exceptions
}

转载注明原文:c#在同一个catch块中捕获两个异常? - 代码日志