黑马程序员技术交流社区

标题: Java基础--Exception使用陷阱(1) [打印本页]

作者: michael_wlq    时间: 2015-9-1 11:32
标题: Java基础--Exception使用陷阱(1)
本帖最后由 michael_wlq 于 2015-9-1 11:37 编辑

在异常处理过程中,throw单独存在时,throw语句下面不能再定义执行语句,因为执行不到会编译报错。【注意】类似的还有continue、break、return等,这些语句后面都不能直接再添加语句。

示例1:
class Demo {
        public static void main(String[] args) {
                try {
                    /*把异常封装成一个单独的showExce()方法,该方法可能会抛出异常,也可能不抛出,
                      所以后面的语句可以正常执行,该程序的输出结果为:BCD
                    */
                        showExce();
                        System.out.print("A");
                } catch(Exception e) {
                        System.out.print("B");
                } finally {
                        System.out.print("C");
                }
                System.out.println("D");
        }
        public static void showExce()throws Exception {
                throw new Exception();
        }
}

----------------------------------------------------------------------------------------------------------------------------
示例2:
class Demo {        
        public static void func() {
                try {
                        //该语句肯定会抛出异常,下面的语句肯定不会得到执行,所以会编译失败。
                        throw new Exception();
                        System.out.println("A");
                } catch(Exception e) {
                        System.out.println("B");
                }
        }
        public static void main(String[] args) {
                try {
                        func();
                } catch(Exception e) {
                        System.out.println("C");
                }
                System.out.println("D");
        }
}
//编译失败。 因为打印“A”的输出语句执行不到。
记住:throw单独存在,下面不要定义语句,因为执行不到。



作者: SYAD    时间: 2015-9-1 11:45
不错 赞一个
作者: michael_wlq    时间: 2015-9-1 12:02
SYAD 发表于 2015-9-1 11:45
不错 赞一个

加油 加油
作者: 三分之一    时间: 2015-9-1 14:50
学习了。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2