classTryTest{ publicinttest(){ int a = 100; int div = 10; int result = 0; try { while(div>-1) { div--; result = a/div; } return result; }catch(Exception e) { // 打印出异常e e.printStackTrace(); System.out.println("执行catch....."); }finally { System.out.println("执行finally....."); } return result; } }
运行结果:
1 2 3 4 5 6
java.lang.ArithmeticException: / by zero 执行catch..... 执行finally..... at com.imooc.exception.TryTest.test(TryCathTest.java:20) at com.imooc.exception.TryCathTest.main(TryCathTest.java:8) test返回值:100
分析程序与运行结果:
test()方法中会出现a/0的情况,这样会抛出一个Exception的异常,被catch捕获到了。之后便是打印出了捕获到的异常“java.lang.ArithmeticException: / by zero”,执行后面的输出语句。再之后执行finally里面的语句,输出“执行finally…..”。最后,执行finally外的语句,返回当出现异常前result的值。