有没有人有异常处理的最佳实践?
在网上搜索时,我在代码级别找到了很多最佳实践(不要抓住一般异常,不要重新抛出新的异常等).我所寻找的是更高级别的最佳实践,例如:
在应用程序中捕获ui级别的异常.
记录尽可能详细的信息,显示友好的错误消息
更像SOA的应用程序区分功能异常(您要求特定客户并希望找到一个,但找不到)和技术异常(数据库脱机)
不要将异常用于功能异常
区分致命和非致命异常
区分使重试成为可能或使重试完全无用的异常
提醒维护人员的模式
非常感谢任何想法和帮助,谢谢.
@Ilya:
这可能是乔尔写过的最糟糕的文章之一(对于那些没有阅读过该链接的人,他认为"异常被视为有害",所以不要使用它们).
Joel有两个例外问题:
它们在源代码中是不可见的.
但未处理的状态回报也是如此.正确处理状态 - 返回会使方法的正常流动变得混乱,使得它们更难以阅读.
它们为函数创建了太多可能的退出点.
什么呢?处理故障几乎总是要求您提前返回.明确退出点只会使代码混乱.
Ned Batchelder 在这里对Joel的回复非常好(而且更长).乔尔在这里有一个简短的回复,奈德在这里再次回复.
布拉德·艾布拉姆斯也有例外的价值很不错的文章在这里.