在n层应用程序中,哪一个是UI层、try-catch和良好实践的良好组合?为什么?
1.
try
{
//Statements
}
catch
{
throw
}
finally
{
//cleanup codes
}或
2.
try
{
// statements
}
catch(Exception ex)
{
}
finally
{
// clean up
}在UI层中
try{
}
catch(Exception ex)
{
Log(ex);
}
finally
{
//clean up
}发布于 2011-01-08 20:09:41
在第一个例子中,catch和throw是完全没有意义的,如果你想确保清理,你应该只使用try和finally。
第二个是危险的,永远不应该使用。代码不应该包含一个接受所有异常的catch,而只是忽略它而不做任何解释。在极少数情况下,您需要捕获异常并忽略它,您应该尝试将其限制为特定类型的异常,并且应该始终在代码中包含注释,解释为什么忽略该异常。
第三个例子运行得很好。我假设您在try块中有更多的异常处理,可以捕获您预期的特定异常类型,并在需要时通知用户问题。
发布于 2011-01-08 20:06:07
一种常见的做法是在业务/服务层中使用try/finally (或using语句),以确保资源得到适当清理。
在物理层边界,您可能想要长异常,因此您可能具有类似以下内容:
try
{
}
catch(Exception ex)
{
... log exception
throw;
}并且可能是UI层中的顶级异常处理程序(try/catch)。
https://stackoverflow.com/questions/4633682
复制相似问题