异常框架
Throwable
|
|-------------------------------|
Error Exception
|
|-------------|
RuntimeException 编译时异常
编译时期异常:Java程序必须显示处理,否则程序就会出现错误,无法编译通过,必须处理
运行时期异常:无需显示处理,也可以和编译时异常一样处理
Exception :java中所有异常的超级父类
构造方法: Exception() //创建一个异常消息是null的异常
Exception(String message) //创建一个异常消息是message的异常
主要方法:String getMessage()//得到异常信息
void printStackTrace() //输出异常信息+追踪位置
异常处理的两种方式:
1、try-catch
2、throws
throw与throws的区别
1、throw a、用在方法体内,跟的是异常对象名
b、只能抛出一个异常对象名
c、表示异常抛出,由方法体内的语句处理
2、throws a、用在方法声明的后面,跟的是异常类名
b、可以跟多个异常类名,用逗号隔开
c、表示抛出异常,由该方法的调用者来处理
finally关键字
特点:被finally控制的语句一定会执行,除非在finally之前JVM退出:eg System.exte(0)
try-catch 与 throws 的区别
try-catch 一旦发生异常,只有try里面在发生异常语句之后的代码不执行,程序正常结束
throws 一旦发生异常,程序立刻结束
如何选择异常处理的方式呢?
后续程序需要继续执行,就用try-catch
后续程序不需要执行,可以用throws,也可以用try-catch
如何自定义异常?
1、继承Exception或者RuntimeException
2、编写无参构造和有参构造[通过super.(message)调用父类构造方法]