假设A extends Exception , C extends Exception , B exception A
如果父类的函数中有个A异常 , 那么子类必须要么抛A要么抛B,不能抛C
我们假设可以抛C
比如有个Test类有个方法需要传进来一个父类对象当参数,要调用父类的一个方法,父类的方法有异常,那么这个Test类也许会catch(A a)一下,
但如果你要传进来一个子类,根据多态,也可以调用相应方法,但执行的是子类的方法,这时候你抛出一个C
那么catch接收不了 程序就报错了
明白了吗
所以 如果子类真的有超过父类异常的范围 只能自己在内部try catch解决了 不能抛了
|