当程序没有按开发人员的意愿正常执行,中途出现错误导致程序中断,出现这种情况,就称为异常。
异常家族
如何处理异常:
方式一:
try-catch-finally
语句
这种方式处理异常,无论会不会抛出异常,都能让程序正常执行。
try{
//可能出现异常的代码
}catch(异常类 异常对象){
//如果出现异常对象,且与catch小括号中的异常类型匹配,就会执行这里的代码
}catch(异常类 异常对象){
//如果出现异常对象,且与catch小括号中的异常类型匹配,就会执行这里的代码
}finally{
//无论程序是否会抛出异常,都要执行的代码
}
final、finally、finalize的区别
- final是一个修饰符,被final修饰的属性称为常量,方法不能被重写,类不能被继承
- finally是try-catch-finally结构中的关键字,在无论是否抛出异常,都会执行的代码块
- finalize是Object类中的方法,finalize()在某个对象被回收前调用的方法
方式二:
throws
关键字
这种方式,可以让编译时异常通过编译。
public class Test{
public void fun() throws InterruptException{//这时该方法就会有一个声明:该方法可能
会抛出异常
//这句话直接写完后,会报错,因为sleep()方法可能会抛出InterruptException异常,属于
编译时异常,必须要处理
Thread.sleep(500);
}
}