黑马程序员技术交流社区

标题: catch(Exception e){throw e;} 和 catch(Exception e){throw;} [打印本页]

作者: 倚楼听雨    时间: 2014-8-3 00:14
标题: catch(Exception e){throw e;} 和 catch(Exception e){throw;}
本帖最后由 倚楼听雨 于 2014-8-5 19:52 编辑

都知道是2中抛出异常的方式,不知道他们有什么区别没有
作者: 许庭洲    时间: 2014-8-3 06:04
catch(Exception e){throw e;} //将发生的异常对象抛出
catch(Exception e){throw;} //只是抛出异常,并没有抛出原异常对象
作者: hujiapeng    时间: 2014-8-3 08:56
看到这,我想起一个异常传递的问题来
  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中
作者: 小笨    时间: 2014-8-3 09:02
#在这里快速回复#catch(Exception e){throw e;} //将发生异常的对象抛出 catch(Exception e){throw;} //只是抛出异常,并没有抛出原异常对象
作者: 小笨    时间: 2014-8-3 09:04
catch(Exception e){throw e;} 这条语句将发生异常的对象抛出;而 catch(Exception e){throw;} 只是抛出异常,并没有抛出原异常对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2