这个异常处理代码是否有效

zac*_*ary 0 c# exception-handling

两个捕获块都会被击中吗?

try
{
    DoSomething();
}
catch (AuthenticationException e)
{
    throw;
}
catch (Exception e)
{
    throw new AuthenticationException("Hello ");
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*isF 8

它是有效的(因为它将编译,构建和运行),但这不是好的做法.

仅捕获一般异常以重新抛出特定异常将导致问题.如果没有别的你正在破坏原来的异常调用堆栈.

为了响应您的编辑,两个catch块都不会被命中.

如果AuthenticationException被引发,则将执行第一个块,对于任何其他异常,将执行第二个块.