以下代码,如果使用 throw e ,运行代码分析会提示如下警告,如果直接 throw 则不会提示警告
![](https://i-blog.csdnimg.cn/blog_migrate/510d295eeb23124b74aef47d75ec16af.png)
static void Main(string[] args) { try { MemoryStream ms = new MemoryStream(16); ms.Close(); try { ms.ReadByte(); } catch (ObjectDisposedException e) { Console.WriteLine("错误信息: {0},堆栈信息:{1}", e.Message, e.StackTrace); //throw e; 不好的做法 throw; //好的做法 } } catch(Exception ex) { Console.WriteLine(); Console.WriteLine("错误信息: {0},堆栈信息:{1}", ex.Message, ex.StackTrace); } Console.ReadLine(); }
![](https://i-blog.csdnimg.cn/blog_migrate/134b2916af445557ac627a246e6dc430.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c32805b637c0477bcaa6435112282607.png)