Java 异常
异常
异常在java 中以类的形式存在,每个类都可以new一个对象,发生异常的时候,自动创建一个对象
两种处理方式
1、在方法声明的位置上,使用 throws 关键字,抛给上一级。 上报的时候,当前方法就结束
2、使用 try...catch 语句进行异常的捕捉。如果有异常发生,try 内 异常后面的语句不执行。
catch 可以写具体的也可以写父类型,可以写多个,多个的时候并且必须是从小到大排序
java中异常发生之后如果一直向上抛,抛给main方法,最终抛给jvm,会中止 程序
如果抛出异常,必须选择其中一个方式;
throws 在方法声明的时候使用,表示上报
throw 手动抛异常
try catch finally ; try finally 语句块
finally 是必然会执行到的,即使 try 内有return
System.exit(0) 退出虚拟机,这个不会执行finally
package javase.exception; import java.io.FileInputStream; import java.io.FileNotFoundException; public abstract class ExecptionTest09 { public static void main(String[] args) { int p = m1(); System.out.println(p); // 100 } /* 1、从上往下依次执行 2、return 语句必须是最后执行,一旦执行,整个方法跳出 */ public static int m1(){ int i = 100 ; try{ return i; }finally { i++; System.out.println(i); } } }
final : 最终的,不变的
finally : 和try 一起用,表示必然执行的
finalize() : 是标识符,是object类中的一个方法,作为方法名出现.垃圾回收器GC调用
自定义异常
继承 Exception 或者 RunException
提供两个构造方法,一个无参数的,一个带有 String 参数的
方法覆盖:重写之后的方法不能比重写之前的方法抛出更多的异常,可以更小更少