C#中使用throw和throw ex抛出异常的区别

王朝学院·作者佚名  2016-05-20
窄屏简体版  字體: |||超大  

C#中使用throw和throw ex抛出异常的区别

通常,我们使用try/catch/finally语句块来捕获异常,就像在这里说的。在抛出异常的时候,使用throw和throw ex有什么区别呢?

假设,按如下的方式调用几个方法:

→在Main方法中调用Method1方法,try/catch捕获异常→在Method1方法中调用Method2方法,try/catch捕获异常→在Method2方法中故意抛出异常,try/catch捕获异常

使用throw抛出异常

static void Main(string[] args)

{

try

{

Method1();

}

catch (Exception ex)

{

Console.WriteLine(ex.StackTrace.ToString());

}

Console.ReadKey();

}

static void Method1()

{

try

{

Method2();

}

catch (Exception ex)

{

throw;

}

}

static void Method2()

{

try

{

throw new Exception("来自方法2的异常");

}

catch (Exception ex)

{

throw;

}

}

可以看到,使用throw抛异常,把发生在Method2方法、Method1方法和Main方法中的异常全部抛了出来。

使用throw ex抛出异常

现在,在Method1方法中,使用throw ex抛出异常。

static void Method1()

PRe style="font-size: 10px; font-family: consolas,'Courier New',courier,monospace; width

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航