try catch finally是Java语言的最基本的知识,估计大家都已经再熟悉不过了,初学者可以百度一下,一大堆;
但是要真正理解这个语句,需要反复思考联系;
try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 } catch { //除非try里面执行代码发生了异常,否则这里的代码不会执行 } finally { //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally }
这个语句有一个重要的点就是throw;
throw可以抛出与之相应的try块中的异常,常常写在catch中,执行到throw语句后程序就终止了,后面的不会执行;
当这个抛出异常的try快外面还有一层函数,此函数也有相应的try,catch语句,但由于内层的try,catch语句执行成功,外层的catch也认为执行成功,所以不会执行catch分支,但是会接受throw出来的异常信息;
下面是代码实例和运行结果:
package test; public class test_do { static void procedure() { try { int a = 0; int b = 3/a; } catch(java.lang.ArithmeticException e) { System.out.println("in procedure, catch ArithmeticException: " + e); } } public static void main(String args[]) { try { procedure(); } catch(java.lang. Exception e) { System.out.println("in main, catch Exception: " + e); } } }
结果:
in procedure, catch ArithmeticException: java.lang.ArithmeticException: / by zero