在.Net中处理异常应注意的问题
2009-01-14 23:13
323 查看
我们在编写程序时总免不了和错误打交道,在结构化时代,常用的做法是用返回值来表达是否出错,到了OO时代,我们可以使用异常来表达错误,但如果使用不当,就不能达到应用的效果。请看下面的例子:
F1()
{
Code
try
{
F2();
}
catch(SqlException ex)
{
DoSomethingToRecover();
throw new MyException("My Message", ex);
}
下面给出我的异常处理建议:
1. 不能处理的异常尽可能不要捕捉, 除非在catch块中必须要做一些恢复或日常记录,在这种情况下总是抛出新的异常,并将原始异常作为内部异常;
2. 尽可能只捕获特定的异常,而不要捕获Exception异常本身;
3. 在出现错误的情况下用异常而不用返回值来表达错误,这样代码会更简洁;
4. 不要使用异常来表达正常的逻辑,比如用户登录验证失败就不应该使用异常;
5. 异常日志的记录应该放在分层的边界处,比如服务层,层的内部一般不需要记录日志。
F1()
{
Code
try
{
F2();
}
catch(SqlException ex)
{
DoSomethingToRecover();
throw new MyException("My Message", ex);
}
下面给出我的异常处理建议:
1. 不能处理的异常尽可能不要捕捉, 除非在catch块中必须要做一些恢复或日常记录,在这种情况下总是抛出新的异常,并将原始异常作为内部异常;
2. 尽可能只捕获特定的异常,而不要捕获Exception异常本身;
3. 在出现错误的情况下用异常而不用返回值来表达错误,这样代码会更简洁;
4. 不要使用异常来表达正常的逻辑,比如用户登录验证失败就不应该使用异常;
5. 异常日志的记录应该放在分层的边界处,比如服务层,层的内部一般不需要记录日志。
相关文章推荐
- 一个SoapExcept异常的处理以及.NET平台下WebService应用的一点注意事项
- .NET进行异常处理时的原则注意事项
- oracle存储过程中异常处理应注意的问题
- 使用异常处理语句需要注意的几个问题
- Java异常处理、异常处理使用的一些注意点(例如,基类和子类捕获的顺序问题)
- Java Socket常见异常处理 和 网络编程需要注意的问题
- 解决.NET CF 3.5 Bitmap(Stream)未处理异常问题
- Java异常处理的注意问题
- [Flex]Flex编程注意之ViewStack高度异常问题
- Swift教程_swift常见问题(0002)_完美处理SourceKitService Crashed异常,6.1.1大部分已经修复
- 异常处理中的问题
- 打开.net时CPU占用率100%的问题个人处理办法
- 工作中遇到异常处理的问题
- .NET中访问Oracle数据库链接:ORA-02041: client database did not begin a transaction 问题的处理。
- .NET中异常处理的最佳实践(译)
- .NET连接SQL Server的问题处理
- .Net 4.0中处理Corrupted State Exceptions异常
- solr SearchHandler扩展,解决httpclient连接问题以及对连接异常的容错处理
- Outlook Express 使用过程中的注意事项及异常的处理方法
- 自定义ruby异常时需要注意的一个问题