首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用try-catch-finally的实践

使用try-catch-finally的实践
EN

Stack Overflow用户
提问于 2011-01-08 19:41:26
回答 2查看 204关注 0票数 0

在n层应用程序中,哪一个是UI层、try-catch和良好实践的良好组合?为什么?

1.

代码语言:javascript
运行
复制
 try
    {
     //Statements
    }
    catch
    {
      throw
    }
    finally
    {
     //cleanup codes
    }

2.

代码语言:javascript
运行
复制
 try
    {
      // statements
    }
    catch(Exception ex)
    {
    }
    finally
    {
     // clean up
    }

在UI层中

代码语言:javascript
运行
复制
try{
}
catch(Exception ex)
{
 Log(ex);
}
finally
{
  //clean up
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-08 20:09:41

在第一个例子中,catchthrow是完全没有意义的,如果你想确保清理,你应该只使用tryfinally

第二个是危险的,永远不应该使用。代码不应该包含一个接受所有异常的catch,而只是忽略它而不做任何解释。在极少数情况下,您需要捕获异常并忽略它,您应该尝试将其限制为特定类型的异常,并且应该始终在代码中包含注释,解释为什么忽略该异常。

第三个例子运行得很好。我假设您在try块中有更多的异常处理,可以捕获您预期的特定异常类型,并在需要时通知用户问题。

票数 1
EN

Stack Overflow用户

发布于 2011-01-08 20:06:07

一种常见的做法是在业务/服务层中使用try/finally (或using语句),以确保资源得到适当清理。

在物理层边界,您可能想要长异常,因此您可能具有类似以下内容:

代码语言:javascript
运行
复制
try
{
} 
catch(Exception ex)
{
   ... log exception
   throw;
}

并且可能是UI层中的顶级异常处理程序(try/catch)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4633682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档