C#异常处理

基本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
try
{
···
}
catch()
{
···
}
catch()
{
···
}
finally
{
···
}
  • 可以catch很多不同的异常,不指定的话默认Exception,即捕获所有异常

throw抛出异常

主动抛出异常

比如在自己的类中,用if判断是否由奇奇怪怪的错误,然后抛出,再去调用申明好的自定义或预定义的异常类

Exception类

.net预定义的异常的基类

自定义异常类

推荐的格式,带3个构造函数

1
2
3
4
5
6
7
8
9
10
///不带参数
///带一个字符串参数:用来提示异常的信息
///带一个字符串参数和一个exception参数(异常对象):第二个参数存在的意义在于当前异常可能由其他异常产生,异常栈

public class MyXXX : Exception //从适合的异常类中派生
{
public MyXXX() : base("Ohhhhhhh!") { }
public MyXXX(string a) : base(a) { }
public MyXXX(string a, Exception e) : base(a, e) { }
}
  • throw配套使用,不然异常类就没有用