有什么区别:
catch
{
MessageBox.Show("Error.");
}
Run Code Online (Sandbox Code Playgroud)
和:
catch (Exception ex)
{
MessageBox.Show("Error.");
//we never use ex, so is it better to use catch without arguments?
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 67
从.NET 2开始,如果你不调整配置?没有.
在此之前,或者通过一些配置调整我无法准确记住,有可能从非托管代码抛出异常,但未转换为Exception
兼容对象.
请注意,中间还有另一个选项,您可以在其中指定类型但不指定变量:
catch (Exception)
{
...
}
Run Code Online (Sandbox Code Playgroud)
就个人而言,我非常警惕在没有记录的情况下捕获异常.如果您正在调用一个骨干API,可能需要它,但通常最好避免使用它.
小智 8
我认为他们是一样的.但是第二种情况引发了编译器警告,因为你声明了一个你没有使用的异常.我更喜欢第一个,因为你明确说明你没有使用异常.还有第三个
catch (Exception)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
如果要指定异常类型但不关心异常本身.
通常,您应该首先捕获特定错误.
但是,如果你去寻找Exception
像你一样的将军,我会说使用第二种情况:
catch (Exception ex)
{
MessageBox.Show("Error.");
//we never use ex, so is it better to use catch without arguments?
}
Run Code Online (Sandbox Code Playgroud)
这可以帮助你进行debbuging,因为变量包含堆栈跟踪,异常消息......等.您可以使用它来记录错误或有助于您防止错误的内容.
但是要小心使用这种方法:
MessageBox.Show("Error.");
Run Code Online (Sandbox Code Playgroud)
不跟踪某处的错误(如日志文件)可能会造成非常大的混乱.
归档时间: |
|
查看次数: |
32124 次 |
最近记录: |