【LSP】Java异常(二)
http://cdn.u1.huluxia.com/g4/M01/5A/D8/rBAAdl9uzp2AVCXHAACt4WdlvYs455.jpg
2. 第二种: [消极处理]格式: 权限.... 方法名(参数类型 参数名,参数类型 参数名,...) throws 异常类型,...{方法体}原理:当前方法体中将异常抛出到方法调用处,在方法调用的地方必须处理当前异常.方法调用处可以处理该异常,也可以继续向方法外抛出异常.[如果main函数中也没有处理该异常,该异常将抛给Java系统,Java系统将以"粗暴的方式"处理,直接结束程序的执行]异常后面的代码就不会再执行了方法重写的规则之一:类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常类型import java.io.FileNotFoundException;import java.io.IOException;public class OverrideTest { public static void main(String[] args) { OverrideTest test = new OverrideTest(); test.display(new SubClass()); } public void display(SuperClass s){ try { s.method(); } catch (IOException e) { e.printStackTrace(); } }}class SuperClass{ public void method() throws IOException{ } }class SubClass extends SuperClass{ public void method()throws FileNotFoundException{ }}3|33. 开发中如何选择使用try-catch-finally 还是使用throws?如果父类中被重写的方法没有throws方式处理异常,则子类重写的方法也不能使用throws,意味着如果子类重写的方法中有异常,必须使用try-catch-finally方式处理。执行的方法a中,先后又调用了另外的几个方法,这几个方法是递进关系执行的。我们建议这几个方法使用throws的方式进行处理。而执行的方法a可以考虑使用try-catch-finally方式进行处理。4|0四、手动抛出异常http://cdn.u1.huluxia.com/g4/M01/5A/D8/rBAAdl9uzp6AX7VzAADAzU-hntE085.jpg
http://cdn.u1.huluxia.com/g4/M01/5A/D8/rBAAdl9uzp6AZ-FCAAItH2OvEzU617.jpg
页:
[1]