@@特殊异常类RuntimeException:
RuntimeException(NullPointerException,<Array,String>IndexOutOfBoundsException,ArithmeticException)
1,在函数内抛出RuntimeException对象,函数上可以不用声明,编译通过!
2,在函数上声明RuntimeException类,调用者可以不用处理,编译通过!
3,调用含RuntimeException异常的函数,调用者可以不用处理。编译通过!
一般情况下,函数内可能出现异常,并且内部没有进行try处理,那么函数上需要声明,否则编译失败。
但RuntimeException类及其子类 特殊!
特殊的原因:当该异常发生时,希望程序停止。因为在运行时,出现了无法继续运算的情况。希望程序停止后,对代码进行修正!
自定义异常:如果该异常的发生,无法再继续进行运算,就让自定义异常继承RuntimeException
异常分两种:
1,编译时不被检测的异常(RuntimeException及其子类)。运行时异常。异常发生时,程序停掉。
2,编译时被检测的异常。javac 的时候。编译时异常。异常发生,可以被处理。
异常在子父类覆盖中的提体现:
1,子类覆盖父类方法时,如果父类的方法抛出异常。那么子类的覆盖函数只能抛出父类的异常或该异常的子类。(对于新的异常,子类方法只能内部try catch处理)
2,父类方法抛出多个异常,子类在覆盖该方法时,只能抛出父类异常的子集。
3,父类或接口中方法没有异常抛出,子类在覆盖方法时,也不能抛出异常。
如果子类覆盖的方法发生了异常,就必须进行try处理,绝对不能抛出。 |