加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#中的异常传播

发布时间:2020-12-15 19:59:36 所属栏目:百科 来源:网络整理
导读:假设我在C#程序中有三个函数doA(),doB()和doC(),我知道doA()将调用doB(),而doB()又调用doC(). 由于doC()必须与数据库进行交互,因此我知道它可以很好地生成无法解决的异常,需要引起用户的注意.目前,我有一些代码可能会在doC()中的try / catch打击中抛出错误,
假设我在C#程序中有三个函数doA(),doB()和doC(),我知道doA()将调用doB(),而doB()又调用doC().

由于doC()必须与数据库进行交互,因此我知道它可以很好地生成无法解决的异常,需要引起用户的注意.目前,我有一些代码可能会在doC()中的try / catch打击中抛出错误,然后在另一个try / catch中调用doB()中的doC(),同样在doA中调用doB() ()在try / catch块中.这允许我只使用throw;将异常踢到doA(),在那里可以合理地将某些内容显示给用户.

这看起来有点像矫枉过正.我想知道是否因为我不打算在doB()或doC()中处理异常,如果我可以摆脱那里的try / catch块.

假设没有涉及最终块,处理这种情况的最佳做法是什么?

解决方法

如果你的catch块是这样的:

catch (Exception)
{
    throw;
}

然后他们确实毫无意义.你并没有真正处理异常 – 根本不用try / catch.

就个人而言,我的代码中只有很少的try / catch块 – 尽管有很多隐式的try / finally块,但大多数都是由于使用了语句.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读