黑马程序员技术交流社区

标题: 处理异常 [打印本页]

作者: 52java    时间: 2016-9-7 22:57
标题: 处理异常
main函数处理异常的方式:
                        main函数会将异常对象抛给它的调用者JVM,JVM会将异常名称,异常的描述信息,异常出现的位置打印在控制台。
                        并且终止程序的运行。

                自己处理异常:
                        抛:throws
                                throw:
                                        定义在方法内部,表示抛出异常,
                                        后边跟的是异常对象,并且同时只能跟一个异常对象。
                                        抛出的异常对象可以由方法内部的语句处理。

                                throws:
                                        定义在方法的声明上,表示 声明抛出异常
                                        后边跟的是异常类名,可以跟多个,中间由逗号隔开
                                        抛出的异常由方法的调用者处理。

                        try-catch-finally
                                格式:
                                        处理单个异常
                                                try{
                                                        //可能出现问题的代码
                                                }catch(异常类型 变量名){  //  Exception e
                                                        //出问题后的解决方案  //  e.printStackTrace();
                                                }finally{
                                                        //释放资源
                                                }
                                        //try处理多个异常,大的异常类型应该写后边。
                                        处理多个异常:
                                                try{
                                                        //可能出现问题的代码
                                                }catch(异常类型1 变量名1){  
                                                        //出问题后的解决方案
                                                }catch(异常类型2 变量名2){  
                                                        //出问题后的解决方案
                                                }catch(异常类型3 变量名3){  
                                                        //出问题后的解决方案
                                                }
                                                .......
                                                finally{
                                                        //释放资源
                                                }

                                                JDK1.7以后,多个异常类型可以合并,格式如下:
                                                        try{
                                                                //可能出现问题的代码
                                                        }catch(异常类型1 | 异常类型2 | 异常类型3 变量名){  
                                                                //出问题后的解决方案
                                                        }finally{
                                                                //释放资源
                                                        }
                                实际开发的写法:
                                        try{
                                                //可能出现问题的代码
                                        }catch(Exception e){
                                                e.printStackTrace();
                                        }finally{
                                                //释放资源
                                        }
                                finally:
                                        它是一个关键字,也是try-catch-finally语句体的一个模块,
                                        正常情况下里边的代码永远会执行,一般是用来释放资源的。
                                        //特殊情况:还没有执行到finally的时候,jvm已经关闭了。
                                       

                异常的注意事项:(子类重写父类方法时)  //记一个原则就OK了,父亲坏了,儿子不能更坏。
                        A:子类不能抛父类没有的异常。
                           //子类只能抛 父类方法异常的 子类异常或者相同异常。
                        B:父类方法没有抛异常,子类方法有异常只能try,不能抛。
                        C:代码中出现异常了,能try就try,try不了就抛。

        Throwable:
                getMessage();        //获取异常的描述信息
                toString();                //获取异常的描述信息以及异常的名称
                printStackTrace();        //获取异常的描述信息,异常的名称以及异常出现的位置

        自定义异常:
                其实就是自己定义一个类去继承Exception或者是RuntimeException。
                别忘了定义一个空参构造以及一个带String参数的构造。
作者: 王小呆    时间: 2016-9-7 23:08
关于异常的概念描述 好全乎     可以收藏一下
作者: Toxicant    时间: 2016-9-8 01:06
喝下这碗鸡汤,感觉很可以




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