我应该经常使用try catch块吗?如何确定我最需要它的时间和地点?当它被作为中小规模部门业务应用程序的常规做法捕获时,该怎么办?还有一个免费的工具,以帮助我找到重复代码或代码,这将是重构食物链的理想选择吗?我有ReSharper,它很棒,但我需要一些东西来帮助我分析需要重构的内容。
感谢。
答案 0 :(得分:7)
Try..catch块只应在您可以修复错误时使用,以便在重新抛出之前执行清理(即数据库回滚),或者在崩溃之前在顶级catch中记录异常。
你永远不应该默默地吞下异常 - 从那时起你的应用程序可能处于不一致的状态,你不能相信它。最好用记录信息来解决问题。考虑使用Microsoft的崩溃报告服务以及调试和统计目的。
答案 1 :(得分:2)
当我能用他们做一些有意义的事情时,我只会抓住我的异常。 让一般异常冒泡到应用程序级别并在那里处理它。这样,您就可以在一个位置进行所有错误处理以进行日志记录等。
答案 2 :(得分:1)
try-catch。如果你要做的只是释放资源,你可以使用try-finally(是的......没有捕获)。默认的异常处理是抛出它。所以,也许你想记录它然后抛出它。
您的代码应该是
try{
... //do something
}
catch(Exception e){
//log first
throw
}
finally{
//free up resources.
}
工具明智......你最好在类模式下查看代码并按类重构它。这应该更多地是设计考虑而不是事后的想法。
答案 3 :(得分:0)
嗯,在处理异常时,我总是使用3条规则作为最佳做法:
答案 4 :(得分:0)
你应该在代码中放置try ... catch块,你已经识别出可能发生的异常行为,并且你知道如何处理。在确定行为后,这些行为应针对特定的例外情况。永远不应该使用它们来抑制错误。
如果您希望记录异常,则将try..catch块置于高级别非常有用。 Log 4 .Net是一个很好的工具。在中型公司中,您可能希望在发生异常时向某人发送电子邮件,或将其存储在数据库中。