码迷,mamicode.com
首页 > 其他好文 > 详细

C#异常处理匹配顺序

时间:2014-09-17 23:15:42      阅读:364      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   使用   2014   div   sp   

使用try和catch并finally关键字,再次主要记录一下有些比较特别的异常处理。

示例:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ExceptionTest
 8 {
 9     class Program
10     {
11         static void Main()
12         {
13             MyClass my = new MyClass();
14             try
15             {
16                 my.A();
17             }
18             catch(DivideByZeroException e)
19             {
20                 Console.WriteLine("catch in Main");
21             }
22             finally
23             {
24                 Console.WriteLine("finally catch on Main");
25             }
26 
27             Console.ReadKey();
28         }
29     }
30     class MyClass
31     {
32         public void A()
33         { 
34             try
35             { 
36                 B(); 
37             }
38             catch(System.NullReferenceException)
39             {
40                 Console.WriteLine("catch ex in A()"); 
41             }
42             finally
43             {
44                 Console.WriteLine("finally catch in A()");
45             }
46         }
47         public void B()
48         {
49             int x = 10;
50             int y = 0;
51             try
52             {
53                 x /= y;
54             }
55             catch(System.IndexOutOfRangeException)
56             {
57                 Console.WriteLine("catch in B()");
58             }
59             finally
60             {
61                 Console.WriteLine("finally in B()");
62             }
63         }
64     }
65 }

 

可以看见,在Main捕获A()的异常,在A()捕获的是B()的异常。因此,当执行到B中异常的查找顺序为,按照方法执行的堆栈查找,如下

bubuko.com,布布扣

 

找到之后,看是执行程序代码,按照正常顺序执行,就是从栈中取B执行,然后取A,最后取Main,执行结果就是这样:

bubuko.com,布布扣

 

输出结果是:

bubuko.com,布布扣

C#异常处理匹配顺序

标签:style   blog   http   color   io   使用   2014   div   sp   

原文地址:http://www.cnblogs.com/lhyz/p/3978156.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!