Java异常
Java语言中执行不正常情况称为"异常":
- Error:JVM系统内部错误
- Exception: 编程错误导致的一般性问题(如越界,空指针)
在实际中,经常遇到的是RuntimeException
异常处理机制
通过异常处理机制可以防止正常程序语句段的中断,以及抓抛模型
- 捕获
try{
//在捕获的代码块中,如果前面的代码有异常了,就不会执行后面的
}catch(ExceptionName1 e){
}catch(ExceptionName2 e){
e.getMessage();//得到有关信息
e.printStackTrace();//用来跟踪异常事件发生时执行堆栈的内容
}finally{
//无条件执行语句,在执行IO和JDBC操作经常会被用到
}
- 抛出 (throws)
- main方法继续抛出异常时,直接抛到虚拟机上,此时程序不能处理
- 子类重写方法不能抛出比被重复方法更大范围的异常
- 人工抛出异常(除系统自动生成外的一种方式)
受限生成异常类对象,然后通过throw语句实现抛出操作
IOException e=new IOException();//可以抛出的异常必须是Throwable或其子类的实例
throw e;
- 自定义异常
class MyException extends Exception{
public MyException(String msg){
super(msg);
}
}