1.若一段代码前有异常抛出,并且这个异常没有被捕获,这段代码将产生编译时错误「无法访问的语句」。如
public class try_catch_Demo { public static void main(String[] args) { method0(); method2(1,0); int res= method1(1,0); System.out.println(res); } private static void method0() { throw new RuntimeException(); System.out.println("这句不会执行"); } }
2,若一段代码前有异常抛出,并且这个异常被try…catch所捕获,若此时catch语句中没有抛出新的异常,则这段代码能够被执行,
//代码3 try { throw new Exception("参数越界"); } catch (Exception e) { e.printStackTrace(); } System.out.println("异常后");//可以执行
3,若try中有异常,则catch捕获,catch中抛出异常,则终止method3程序,主程序终止;如果调用者,有try{ method3()},则程序跳转到调用者(main中)的catch 来处理
private static void method3() { try{ throw new RuntimeException(); }catch (Exception e){ throw new RuntimeException(); } //System.out.println("这句不会执行"); }