只是一个普遍的问题, 你总是要处理错误吗?
我刚与我的一位同事进行了辩论,在他的代码中,我看到很多地方的东西都围绕着一个try语句而且在catch语句中没有任何内容。
我一直认为不处理错误或将错误隐藏在用户之外是不好的做法(除了将它们记录在日志文件中)。
只是想知道其他人的想法
感谢。
答案 0 :(得分:2)
如果您无法处理异常,那么不会抓住它。可能有人进一步通过调用堆栈可以正确处理它,并祝贺,您现在已经阻止他们完成自己的工作< golfclap /&gt ;.
答案 1 :(得分:1)
捕获异常然后“静音”的做法是邪恶的!我认为99.99%的SOers会同意这一点。
这是一个非常nice article from CodeProject的异常处理最佳实践。猜猜其中一个部分专门用于什么?
你可以做的最糟糕的事情是catch(异常)并在其上放置一个空的代码块。永远不要这样做。
任何有价值的异常处理文章都会提到吞咽概念的异常,而不是以某种方式去做。
答案 2 :(得分:0)
只有西斯交易绝对。但是,说真的,我可以想到最近我们遇到的至少一个实例,只是放弃它并继续前进。我们最近实施了一个内部点击跟踪解决方案,该解决方案将一个异步AJAX请求发送到要记录的MVC控制器。我们不关心它是否未被记录,我们不希望我们自己的日志填满我们不想要的错误日志。那么为什么要担心在catch块中做任何事情的开销呢。我们考虑在catch块中添加代码,以便在出现错误时至少增加一个计数器,但此时没有商业原因。
这真的取决于你是出于懒惰,还是因为实际上有充分理由不这样做。
我可能会说,因为这是一般的不良做法。我是否获得了勇敢的分数?
答案 3 :(得分:0)
如果你可以用它做什么,你必须处理异常
try
{
//CODE
}
catch
{
LogException();
//and/or
RollbackTransaction();
//and/or
ShowFriendlyMessageToUser();
//and/or
DoSomethingUsefullWithTheException();
throw; //This is optional
}
这没有意义,但我已经看了很多
try
{
//CODE
}
catch
{
throw;
}
编辑1 你需要一个很好的论据来做这样的事情。也许你会被解雇:-p
try
{
//CODE
}
catch
{
//HIDE TO THE WORLD THAT THIS IS FAILING
}