A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 倚楼听雨 于 2014-8-5 19:52 编辑

都知道是2中抛出异常的方式,不知道他们有什么区别没有

4 个回复

正序浏览
catch(Exception e){throw e;} 这条语句将发生异常的对象抛出;而 catch(Exception e){throw;} 只是抛出异常,并没有抛出原异常对象
回复 使用道具 举报
#在这里快速回复#catch(Exception e){throw e;} //将发生异常的对象抛出 catch(Exception e){throw;} //只是抛出异常,并没有抛出原异常对象
回复 使用道具 举报
看到这,我想起一个异常传递的问题来
  1. class Class1
  2.     {
  3.         public void test(string i)
  4.         {
  5.             try
  6.             {               
  7.             int j = Convert.ToInt32(i);
  8.             }
  9.             catch (Exception ex)
  10.             {
  11.                 throw;
  12.             }
  13.         }
  14.     }

  15. static void Main(string[] args)
  16.         {
  17.             Class1 c = new Class1();
  18.             try
  19.             {
  20.                 c.test("as");
  21.             }
  22.             catch (Exception ex)
  23.             {
  24.                 throw ex;
  25.             }
  26.             Console.ReadKey();
  27.     }
复制代码

也就是说,在类Class1里面的异常可以抛出到下一个过程里的try--catch中
回复 使用道具 举报
catch(Exception e){throw e;} //将发生的异常对象抛出
catch(Exception e){throw;} //只是抛出异常,并没有抛出原异常对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马