异常处理两种方法
0.什么叫异常
有两种
error:java虚拟机无法解决的严重问题
exception:其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码处理
1.try catch finally 异常处理
try必须跟catch或者finally同时使用
catch先子类再父类,try中从上而下,无论包不报错,最终都要用finally,实际工作中catch括号里边的exception基本用的都是子类,比如Runexception,很少直接用exception,因为这个比太大了,包含错误太多了,而现实中不是所有问题都要报错的,有些小的可以不报,所以基本都用子类
2.throw和throws关键字
代码:
public static void function() throws NumberFormatException{
String s = "abc";
System.out.println(Double.parseDouble(s));
}
public static void main(String[] args) {
try {
function();
} catch (NumberFormatException e) {
System.err.println("非数据类型不能转换");
//e.printStackTrace();
}
}
倒数第三行这个NumberFormatException e,实际上前面可以看作一个类,后边这个e是这个类的一个对象,try里边的错误都存在储在了这个e中,如果后边用了log.error(“有部分属性无法删除,{0}”, e)这种形式,就代表将来输出的语句是“有部分属性无法删除NumberFormatException”