异常
- 异常
- 异常的概述
- JVM处理异常的默认方案
- 异常处理
- Throwable的成员方法
- 编译时异常和运行时异常的区别
- 异常处理throws
- 自定义异常
异常
异常的概述
Throwable是所有异常和错误的超类
error表示严重的问题,合理的程序不应该试图捕获
Exception表示合理的应用想要捕获的条件
Exception分为RuntimeException和非RuntimeException
其中,RuntimeException在编译期间是不检查的,出现问题后需要修改代码
非RuntimeException编译期间必须处理,否则程序不能通过编译,不能正常运行
JVM处理异常的默认方案
如果程序出现了问题,我们没有做任何处理,最终JVM会做默认的处理:把异常的名称,异常原因及异常出现的位置等信息输出在了控制台,程序停止执行
异常处理
try{
//代码块
}catch(异常类名 变量名){
//异常处理
}
Throwable的成员方法
编译时异常和运行时异常的区别
编译时异常和运行时异常也称为受检异常和非受检异常
所有的RuntimeException极其子类都被称为编译时异常,其他的异常都是编译时异常
编译时异常:必须显示处理,否则程序就会发生错误,无法通过编译
运行时异常:不需要显示处理,也可以和编译时异常一样处理
异常处理throws
格式:
throws 异常类名;//跟在方法的括号后面
throws针对异常无法处理的情况,将异常抛出,不是处理是延迟处理
编译时异常必须要进行处理:有两种处理方案,try…catch…或者throws,如果用throws,将来谁调用谁处理
运行时异常可以不处理出现问题后需要修改代码
自定义异常
public class 异常类名 extends Exception{
无参构造
有参构造
}
throws和throw的区别
throws用在方法声明后面,跟的是异常类名;表示抛出异常,由调用者处理;表示出现异常的可能性,并不一定会发生异常
throw在方法体内,跟的是异常对象名;表示抛出异常,由方法体内的语句处理;执行throw一定是抛出了异常