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块,但大多数都是由于使用了语句. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |