微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#中的异常传播

假设我在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块,但大多数都是由于使用了语句.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐