多次异常捕获

gli*_*ite 2 c# exception-handling exception

是否可以在同一个catch块中捕获多个异常?

try
{   }
catch(XamlException s | ArgumentException a)
{   }
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 7

是.如果你捕获一个超类,它也会捕获所有子类:

try
{
    // Some code
}
catch(Exception e)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

如果这比您想要的更多,那么您可以通过测试它们的类型来重新抛出您不想捕获的异常.如果这样做,请小心使用throw;语法,而不是 throw e;.后一种语法破坏了堆栈跟踪信息.

但是你不能使用你提出的语法捕获两种不同的类型.