2010-03-29 29 views
0

只是一个普遍的问题, 你总是要处理错误吗?错误处理与try catch(AGAIN)

我只是与我的同事之一进行了辩论,在他的代码中我看到很多地方东西都围绕着try语句,catch语句中什么都没有。

我一直认为不处理错误或将其从用户隐藏起来是不好的做法(除了将它们记录在日志文件中)。

只想知道别人认为什么

谢谢。

回答

2

如果你不能处理异常,那么不要接收它。可能有人在呼叫堆栈后面可以正确处理它,恭喜你,现在已阻止他们完成他们的工作< golfclap/>。

1

捕捉异常然后“消除它”的做法是EVIL!我认为99.99%的所有企业都会就此达成一致。

下面是有关异常处理最佳实践的nice article from CodeProject。猜猜这些部分是专门用来做什么的?

你可以做的最糟糕的事情是catch(Exception)并在其上放置一个空的代码块。永远不要这样做。

任何异常处理文章值得它的盐将提到吞咽的异常概念,而不是在某种程度上这样做。

0

只有西斯成交的绝对值。尽管如此,我认为至少有一个例子是我们最近碰到的,最好只是放弃它并继续前进。我们最近实施了一个内部点击跟踪解决方案,向MVC控制器发送异步AJAX请求以进行日志记录。我们不在乎它是否没有被记录,我们也不希望我们自己的日志填满我们不想要的错误日志。那么为什么还要在catch块中做任何事情的开销。当我们遇到错误时,我们考虑在catch块中添加代码以至少增加计数器,但目前没有商业原因。

这真的归结为你是否因懒惰而做这件事,或者是因为实际上有一个不该做的理由。

我可能会说因为这是一般的不好的做法。我有勇气获得积分吗?

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 
} 
相关问题