建议70:避免在调用栈较低的位置记录异常
来源:互联网 发布:闪电分期go额度淘宝 编辑:程序博客网 时间:2024/04/29 06:41
建议70:避免在调用栈较低的位置记录异常
并不是所有的异常都要被记录到日志,一类情况是异常发生的场景需要被记录,还有一类就是未被捕获的异常。未被捕获的异常通常被视为一个Bug,所以,对于它的记录,应该被视为系统的一个重要组成部分。
最适合记录异常和报告的是应用程序的最上层,这通常是UI层。假设存在这样一个应用程序,它的BLL层可能被一个WinForm窗体调用,也可能被一个控制台应用程序调用,那么要在BLL模块向管理员报告异常的时候,你可能会不知道该使用MessageBox方法还是使用Console.Write方法。
如果异常在调用栈较低的位置被记录或报告,且还存在被包装后抛出的情况:
internal void MethodLow() { try { //... } catch (SomeException) { Logger.Write("异常SomeException发生") throw; } }
然后在调用栈较高位置也捕获记录异常:
internal void MethodHigh() { try { MethodLow(); } catch (SomeException) { Logger.Write("异常SomeException发生") } }
这就会让记录重复出现。在调用栈较低的情况下,往往异常被捕获了也不能被完整的处理。所以,综合考虑,应用程序在设计初期,就应该为开发成员约定在何处记录和报告异常。
转自:《编写高质量代码改善C#程序的157个建议》陆敏技
0 0
- 建议70:避免在调用栈较低的位置记录异常
- 建议95:避免在构造方法中调用虚成员
- 建议63:避免“吃掉”异常
- 避免死锁的建议
- 构造函数中尽量不要抛出异常,能避免的就避免。。不要在析构函数中抛出异常!
- 建议31:在LINQ查询中避免不必要的迭代
- JAVA API调用优化建议--避免对boolean类型判断
- 避免无话可说的12条建议
- iOS避免内存警告的一些建议
- iOS避免内存警告的一些建议
- iOS避免内存警告的一些建议
- 程序在崩溃时记录出错的位置-Dump文件
- 在Eclipse中快速找到方法被调用的位置
- acpi_init什么时候调用的?定义在哪个位置?
- 关于异常处理的建议
- 网络异常方面的建议
- 建议61:避免在finally内撰写无效代码
- 在SDCard中用文件记录android的异常信息
- display:inline-block的icon不垂直居中问题
- gitignore文件不起作用的处理
- 国内Top500Android应用分析报告(技术发展方向)
- Service(服务)
- Android UI线程和非UI线程
- 建议70:避免在调用栈较低的位置记录异常
- 加密算法之MD5与SAH-1
- Mysql学习总结(35)——Mysql两千万数据优化及迁移
- JavaScript异步加载的4种方式
- ul列表选中变色效果
- asp.net使用多个数据库
- java中的Json
- mybatis动态SQL解析备忘录
- Java探索之路——未知类的探索列表(随时更新)