1、Throwable:万恶之源,所有异常的父类。Throwable有两个子类:Error、Exception。
----------Error:错误,无法通过编写代码解决的错误,比如内存不足,JVM崩溃等。
----------Exception:异常,可以通过编写代码来解决的错误。
2、Exception异常:分为运行时异常和编译时异常。
---------RuntimeException:运行时异常,程序员可以对这类异常不进行处理,有JVM自动处理。
---------其他异常:编译时异常,必须通过编码对异常进行处理。否则不能通过编译。
3、异常处理机制:
a、运行时异常:当某行代码出现异常时,JVM会自动创建一个对应的异常类对象,并把该异常对象抛出去(可以抛给catch语句处理,也可以抛给方法的调用者处理,也可以抛给JVM处理);
b、如果程序员没有编码对异常进行处理,一旦遇到异常,程序立马终止执行。
4、两种处理异常的方式:
a、在方法内部直接处理
try{
可能发生异常的代码
}catch(ExceptionType e){
对异常进行相应的处理
}finally{
无论是否发生异常都要执行的语句块
}
b、不在方法内部处理,将异常抛出去,用throws关键字,在方法声明处、参数列表之后左花括号之前抛出异常。抛出去的异常由方法的调用者处理。
5、手动引发一个异常
throw new ExceptionType();