一、try catch
一种报错的捕捉机制,try块里运行的代码出现错误的时候就会去执行catch块所以一般catch块里都是把错误打印出来或者保存到log日志里;
1.1、具体使用
catch可以用()来选择捕捉什么类型的错误,一般用Exception 因为Exception是所有报错类型的基类;也可以用详细的只捕捉特定的报错类型这样方便每种报错有对应的报错处理;在这种情况下一般就会使用多个catch捕捉不同类型的报错;
try
{}
catch (Exception ex0)
{}
catch (Exception ex1)
{}
catch (Exception ex2)
{}
1.2、try catch finally
finally就是在try块里不管出不出错最后都要执行的代码;一般用于关闭连接,清理缓存;注意也是从上到下执行的,所以在报错的情况下会先执行catch块再执行finally块;
try
{
}
catch()
{}
finally
{}
二、throw
throw是一种异常抛出机制,会传递给最近的一个try catch(同一个方法里就传给同一个的,没有就传给上一层的catch),一般不用throw直接用try catch自己直接抓;
2.1使用场景
但是比如要保存或者打印报错但是这个方法是一个单独的类库里这时候就可以用throw来抛出异常,在上一层的catch里捕捉并且打印保存;
try
{}
catch (Exception ex)
{throw new Exception(”报错“,ex);
}
2.2自定义异常
最主要的用法就是自定义异常,比如一个学生类那学生类的age年龄属性就不能小于0,正常赋值0不会报错就需要throw;或者例子里的amount不能<=0;(nameof方法是返回变量或者方法的名字可以知道是具体哪个值的问题;)
if (amount <= 0){throw new Exception("存款金额必须大于零。", nameof(amount));}