Java程序在执行过程中所发生的异常事件可分为两类:
-
Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源 耗尽等严重情况。
比如:StackOverflowError和OOM。一般不编写针对性的代码进行处理。
-
Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。
Java 异常处理方式:
1、 try - catch - finally
2 、throws + 异常类型
e.getMessage() 获取异常信息,返回字符串
e.printStackTrace() 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void
try {
int i=10/0;
}
catch (Exception e){
e.printStackTrace();
}
finally {
//finally无论如何最后都会被执行
System.out.println("执行结束");
}
用户自定义异常
一般地,用户自定义异常类都是 RuntimeException 的子类。
自定义异常类通常需要编写几个重载的构造器。
自定义异常需要提供serialVersionUID
自定义的异常通过throw抛出。
自定义异常最重要的是异常类的名字,当异常出现时,可以根据名字判断异常类型
public class MyException extends Exception{
static final long serialVersionUID = 13465653435L;
public MyException(String message) {
super(message);
}
}