sp; throw;//再次引发 } } public static void Main() { try { mf2();//调用mf2()方法 } catch(ArgumentNullException ex) { Console.WriteLine("Main()方法中的异常{0}",e.Message); } } }//mf2()方法中的异常:值不能为空。 //Main()方法中的异常值不能为空。 try-finally结构:即try子句后跟一个finally子句。不管try子句是如何退出的(无论正常退出,还是引发异常,甚至执行goto|break|continue|return语句退出),程序的控制权总是会被转移到finally子句执行。 eg: using System; public class MikeCat { public static void Main() { try { Console.WriteLine("执行try子句"); //goto leave;//跳转到leave标签 return; } finally { Console.WriteLine("执行finally子句"); } leave: Console.WriteLine("执行leave标签!"); } }//执行try子句执行finally子句 try-catch-finally:即try子句后跟一个或多个catch子句及一个finally子句 eg: using System; class MikeCat { static void mf(string s) { if(s==null) throw(new ArgumentNullException());//引发异常 } public static void Main() { try { string s=null; mf(s);//调用mf()方法,由于s=null,因此会引发异常 } catch(ArgumentNullException ex) { Console.WriteLine("异常发生:{0}",ex.Message); } finally { Console.WriteLine("执行finally子句"); } } }
上一页 [1] [2] |