只是一个普遍的问题, 你总是要处理错误吗?错误处理与try catch(AGAIN)
我只是与我的同事之一进行了辩论,在他的代码中我看到很多地方东西都围绕着try语句,catch语句中什么都没有。
我一直认为不处理错误或将其从用户隐藏起来是不好的做法(除了将它们记录在日志文件中)。
只想知道别人认为什么
谢谢。
只是一个普遍的问题, 你总是要处理错误吗?错误处理与try catch(AGAIN)
我只是与我的同事之一进行了辩论,在他的代码中我看到很多地方东西都围绕着try语句,catch语句中什么都没有。
我一直认为不处理错误或将其从用户隐藏起来是不好的做法(除了将它们记录在日志文件中)。
只想知道别人认为什么
谢谢。
如果你不能处理异常,那么不要接收它。可能有人在呼叫堆栈后面可以正确处理它,恭喜你,现在已阻止他们完成他们的工作< golfclap/>。
捕捉异常然后“消除它”的做法是EVIL!我认为99.99%的所有企业都会就此达成一致。
下面是有关异常处理最佳实践的nice article from CodeProject。猜猜这些部分是专门用来做什么的?
你可以做的最糟糕的事情是catch(Exception)并在其上放置一个空的代码块。永远不要这样做。
任何异常处理文章值得它的盐将提到吞咽的异常概念,而不是在某种程度上这样做。
只有西斯成交的绝对值。尽管如此,我认为至少有一个例子是我们最近碰到的,最好只是放弃它并继续前进。我们最近实施了一个内部点击跟踪解决方案,向MVC控制器发送异步AJAX请求以进行日志记录。我们不在乎它是否没有被记录,我们也不希望我们自己的日志填满我们不想要的错误日志。那么为什么还要在catch块中做任何事情的开销。当我们遇到错误时,我们考虑在catch块中添加代码以至少增加计数器,但目前没有商业原因。
这真的归结为你是否因懒惰而做这件事,或者是因为实际上有一个不该做的理由。
我可能会说因为这是一般的不好的做法。我有勇气获得积分吗?
你必须处理异常,如果有东西,你可以用它做
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
}