异常注意事项
异常注意事项_finally有return语句
如果finally有return语句,永远返回finally中的结果,避免该情况
int a = getA(); System.out.println(a);
//定义一个方法,返回变量a的值 public static int getA(){ int a = 10; try { return a; } catch (Exception e) { System.out.println(e); }finally { a = 100; return a; } }
异常注意事项_子父类异常
子父类的异常:
-如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。
-父类方法没有抛出异常,子类重写父类该方法是也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出.
注意:
父类异常时什么样,子类异常就什么样
public class Fu { public void show01() throws NullPointerException,ClassCastException{} public void show02() throws IndexOutOfBoundsException{} public void show03() throws IndexOutOfBoundsException{} public void show04() throws Exception {} }
class Zi extends Fu{ //子类重写父类方法时,抛出和父类相同的异常 public void show01() throws NullPointerException,ClassCastException{} //子类重写父类方法时,抛出父类异常的子类 public void show02() throws ArrayIndexOutOfBoundsException{} //子类重写父类方法时,不抛出异常 public void show03() {} /* 父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。 */ //public void show04() throws Exception{} //此时子类产生该异常,只能捕获处理,不能声明抛出 public void show04() { try { throw new Exception("编译期异常"); } catch (Exception e) { e.printStackTrace(); } } }