异常处理
2019-04-11 本文已影响0人
东经20度
异常提供一种把程序控制权从某个部分转移到另一个部分的方式。
1. 异常类
C# 中的异常主要是直接或间接地派生于 System.Exception 类。System.ApplicationException 和 System.SystemException 类是派生于 System.Exception 类的异常类。
- System.ApplicationException 类支持由应用程序生成的异常,所以程序员定义的异常都应该派生自该类。
- System.SystemException 类是预定义的系统异常基类。
2. 异常捕获
语法:
try{
//引起异常的语句
}catch(异常类 异常对象){
//错误处理代码
}finally{
//无论是否异常都需要执行的代码
}
在 try 块的代码中出现异常后,发生事件依次是:
- try 块在发生异常的地方中断程序运行。
- 如果有 catch 块,检查是否匹配发生的异常类型。若没有 catch 块,就执行 finally 块。
- 若匹配 catch 块,则执行该块代码,否则执行 finally 块代码。若无匹配执行 finally 块代码
3. throw
使用 throw 可以抛出自定义异常。
例如:
class Student{
int age;
public void setAge(int age){
if(age<0){
MyException myException=new MyException(“年龄不能小于0”);
throw(myException);
}
}
}
class MyException:ApplicationException{
public MyException(string message):base(message){
}
}
class Program{
static void Main(string[] args){
Student s=new Student();
try{
s.setAge(-1);
}catch(MyException me){
Console.WriteLine(me.Message);
}
}
}
//执行结果
年龄不能小于0