这种设计模式有什么作用?

时间:2016-04-10 04:22:05

标签: c# .net

我试图弄清楚我的书中的代码示例是什么。它说

  

在外部的try-catch块中添加内部finally块   异常处理程序,以防止丢失异常信息:

private void PreventLossOfExeptionFormat()
{
   try
   {
       // ... 
   }
   catch(Exception e)
   {
       Console.WriteLine("Error message == " + e.Message);
       throw;
   }
   finally
   {
       try
       { 
          // ...
       }
       catch(Exception e)
       {
           Console.WriteLine("An unexpected error occured in the finally block. Error message: " + e.Message);
       }
   }
}

外部异常如何进入内部异常?我了解在外部catch区块中,它会被投放到finally区块中,但是它会立即将 置于其中catch块的finally或者try里面的点是什么?因为如果已经提出异常,那么try ......

就没有了

2 个答案:

答案 0 :(得分:7)

  

外部异常如何进入内部异常?

不是。

  

据我所知,在外部捕获区块中,它被扔进了最后   块

  

因为如果已经提出异常,则无需尝试

你好像忽略了什么是明显的阅读。外部的try try catch最终用于捕获标记为

的行中的异常

// ...

即。最后,我想做一些可能让他自己感到异常的事情。

答案 1 :(得分:2)

请记住,无论您是否有外部异常(它都不是由外部finally触发),始终会调用throw块。 finally块可能触发它自己的异常,这是内部catch将捕获的异常。