简单的try/catch没有使用异常

Fre*_*red 9 c# error-handling

我已经搜索了我的问题的答案,但找不到答案.抱歉,如果答案在那里,我正在重复!

我一直在看try/catch代码......

try
{
    //Do whatever
}
catch (Exception ex)
{
    MessageBox.Show("Oops, something went wrong!");
}
Run Code Online (Sandbox Code Playgroud)

这将导致警告ex从未使用过.

所以我的问题是......虽然从未使用过ex,但声明中是否有任何好处?有人告诉我,它可能会为堆栈跟踪添加细节吗?有时我看到catch(Exception)会停止警告但是这带来了什么好处呢?如果我要写这个并且不以任何方式使用异常我不会声明ex ...

try
{
    //Do whatever
}
catch
{
    MessageBox.Show("Oops, something went wrong!");
}
Run Code Online (Sandbox Code Playgroud)

这不是一个大问题,但肯定知道会很好!

谢谢

弗雷德

Ode*_*ded 10

您可以使用以下模式,仍然声明特定的异常类型,而不使用变量,以确保仍然发生结构化异常处理(SEH):

try
{
    //Do whatever
}
catch (IOException)
{
    MessageBox.Show("Oops, something went wrong in the IO!");
}
catch (Exception)
{
    MessageBox.Show("Oops, something went wrong!");
}
Run Code Online (Sandbox Code Playgroud)

这不是我通常会使用的做法,因为如果不重新抛出它,我可能会记录异常细节.