代码分析:CA2200 再次引发以保留堆栈详细信息

以下代码,如果使用 throw e ,运行代码分析会提示如下警告,如果直接 throw 则不会提示警告
 
  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();
        }

 

 

 

posted @ 2016-07-27 16:20  新进社员  阅读(324)  评论(0编辑  收藏  举报