1.java的所有错误和异常都继承Throwable类,只有是该类或者子类的对象能够被throw和catch. 该类重要的方法: (1)printStackTrace() 将此throwable和其追溯打印到标准错误流。 2.java的异常分为运行时异常和编译时异常(受检异常)。 运行时异常是所有RuntimeException的子类,运行时异常是需要我们手动修改代码的,是bug。例如数组下标越界是运行时异常:ArrayIndexOutOfBoundsException。 非RuntimeException的异常类都是编译时异常。编译时异常是需要我们显示的处理的,否则无法通过编译。例如 类型转换异常(ParseException) 3.异常的处理方式有两种: jvm对异常的默认处理是遇到异常后打印异常信息,终止程序的执行。有时候可能并不能满足我们的需求。 (1)try…catch{} 捕获异常,直接处理。程序会继续往下执行。 (2)throws 终止正在执行的方法的执行,将异常抛出去,由上一级方法决定如何处理异常 4.自定义异常类 只要是继承Exception类的子类都可以被捕获,都是异常类。 注意:在需要编译时检查的方法中通过throw new MyException()手动抛出异常。
|