在c#中尝试catch的不同方法

Dr.*_* No 2 c# exception-handling try-catch

我有这段代码:

try
 {
// DO SOMETHING
 }
catch (Exception e)
 {  
    throw new WebPartPageUserException("YEAH MESSAGE");
}
Run Code Online (Sandbox Code Playgroud)

并且编译器向我发送不使用var e的警告.

然后我改为

try
{
 // DO SOMETHING
}
catch (Exception)
{  
     throw new WebPartPageUserException("YEAH MESSAGE");
}
Run Code Online (Sandbox Code Playgroud)

这没关系,但最后我才明白

try
{
    // DO SOMETHING
}
   catch 
{  
   throw new WebPartPageUserException("YEAH MESSAGE");
}
Run Code Online (Sandbox Code Playgroud)

也有效.

这三个街区是否一样?在那种情况下,这是最佳做法?

Dan*_*rth 10

他们正在做同样的,他们是所有不好的做法,因为你抓住所有的异常,甚至没有记录异常的详细信息.我们无法知道你的真正原因WebPartPageUserException.

  • +1加上你抛出一个新的异常,它会丢失该堆栈,甚至不包括原始异常 (3认同)