首页 > 技术文章 > try catch finally

yinguojin 2018-11-14 15:04 原文

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

 

推荐阅读