为了账号安全,请及时绑定邮箱和手机立即绑定

捕获和重新抛出.NET异常的最佳实践

捕获和重新抛出.NET异常的最佳实践

翻翻过去那场雪 2019-07-02 15:43:43
捕获和重新抛出.NET异常的最佳实践在捕获异常并重新抛出异常时,需要考虑哪些最佳实践?我想确保Exception对象的InnerException堆栈痕迹被保存下来。下面的代码块在处理这些代码块的方式上有区别吗?try{     //some code}catch (Exception ex){     throw ex;}与:try{     //some code}catch{     throw;}
查看完整描述

3 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

保存堆栈跟踪的方法是通过使用throw;这也是有效的。

try {
  // something that bombs here} catch (Exception ex){
    throw;}

throw ex;基本上就像从那个点抛出一个异常一样,所以堆栈跟踪只会转到您要发出throw ex;声明。

麦克也是正确的,假设异常允许您传递一个异常(这是建议的)。

卡尔·塞金有一个在异常处理方面写得很好在他的编程电子书的基础这也是一本很好的读物。

编辑:工作链接到方案编制的基础PDF。只需搜索文本中的“异常”。


查看完整回答
反对 回复 2019-07-02
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

如果您抛出一个带有初始异常的新异常,您也将保留初始堆栈跟踪。

try{} catch(Exception ex){
     throw new MoreDescriptiveException("here is what was happening", ex);}


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 530 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信