[摘要]try-catch-finally try-catch结构:try子句后跟一个或多个catch子句。如果执行try子句中的语句时引发了异常,那么程序将按顺序查找第一个能处理该异常的ca...
try-catch-finally
try-catch结构:try子句后跟一个或多个catch子句。如果执行try子句中的语句时引发了异常,那么程序将按顺序查找第一个能处理该异常的catch子句,并将控制权转移到catch子句执行。既没定义异常类型,也没定义异常变量的catch子句称为普通catch子句。一个try子句最多只能有一个普通catch子句,而且该子句必须排在其他catch子句的后面。
eg:
using System;
class MikeCat
{
static void mf1(string s)
{
if(s==null)
throw(new ArgumentNullException());//引发异常
}
static void mf2()
{
try
{
string s=null;
mf1(s);//调用mf()方法。由于s=null,因此会引发异常
}
catch(ArgumentNullException ex)
{
Console.WriteLine("mf2()方法中的异常:{0}",ex.Message);
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
关键词:Csharp+Asp.net系列图文详细教程(6)