C#中的try catch 和finally

  错误的出现并不总是编写应用程序的人的原因,有时应用程序会因为终端用户的操作而发生错误。无论如何,我们都应预测应用程序和代码中出现的错误。

      这三个关键字try是必定要用的,要不然就失去了意义。然后catch和finally可以不用但是要注意遵循原则

  一个或多个catch的时间可以不用finally但是也可以用。

  如果没有catch的时间必须要用finally。

  其中每个关键字都对应的有自己的代码块

  try代码块主要包括出错的代码如
   i = Convert.ToInt32(str);

  不知道是否能转化成功。
  catch是处理异常的代码

  finally是处理异常之后要做的事情

  

 1             static void Main(string[] args)  
 2             {  
 3                 int i=1 ;  
 4                 string str = "dfdfs";  
 5                 try  
 6                 {  
 7                     i = Convert.ToInt32(str);//有异常的地方  
 8                 }  
 9                 catch //(Exception e)  
10                 {  
11                     //Console.WriteLine(e.Message);  
12                     i = 3;//处理异常  
13                     //throw new Exception("转化失败");  
14                 }  
15                 /* 
16                   这里可以添加上,根据异常的类型来匹配,有点像case。关于异常的类型有很多 
17     //System 
18      
19     ArgumentNullException //参数异常 
20     ArgumentOutOfRangeException //参数异常 
21     DivideByZeroException //除数为0异常 
22     IndexOutOfRangeException //索引超出范围的异常 
23     NullReference-Exception//参数异常 
24     OverflowException //溢出异常 
25     StackOverflowException //堆溢出异常 
26      
27     //System.IO 
28      
29     DirectoryNotFoundException//找不到路径的异常 
30     EndOfStreamException //结束流的异常 
31     FileNotFoundException//找不到文件异常 
32     PathToo-LongException //路径太长异常 
33      
34     //System.Data 
35      
36     DuplicateNameException 
37     InvalidConstrainException 
38     InvalidExpressionException 
39     Missing-PrimaryKeyException 
40     NoNullAllowed-Exception 
41     ReadOnlyException 
42      
43     //System.Runtime.InteropServices 
44      
45     InvalidComObjectException 
46     InvalidOleVariantTypeException 
47     SEHException 
48                   catch(ExceptionType e ) 
49                    { 
50                  //异常处理 
51                    } 
52                  */  
53                 finally  
54                 {  
55                     Console.WriteLine(i.ToString());  
56                   
57                 }  
58     }  
原文地址:https://www.cnblogs.com/leanfish/p/4964598.html