A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
异常就是程序在运行时出现的不正常情况.
原因:问题也是现实生活中具体的事物,也通过java的类的形式进行描述,并封装成对象.
        其实就是java对不正常情况进行描述后的对象体现.

        对于问题的划分:
        1,严重的问题:java通过Error类型进行描述.
                        对于Error一般不编写针对性的代码进行处理.
        2,非严重的问题:java通过Exception进行描述.
                        对Exception可以针对性的处理方式处理.
无论Error还是Exception都具有一些共性内容:
比如:不正常情况的信息,引发原因.
        Throwable
                |--Error
                |--Exception
异常处理:
        try
        {
                需要被检测的代码;
        }
        catch(异常类 变量)
        {
                处理异常代码:(处理方式)
        }
        final
        {
                一定会执行的语句;
        }
对捕获到的异常对象进行常见方法操作:
String getMessaage():获取异常信息

throws Exception:在功能上通过 throws关键字声明了该功能可能会出现问题.
便于提高安全性,让调用者进行处理,不处理编译失败.
多异常处理:
1,声明异常时,建议声明更为具体的异常,处理也会更具体.
2,声明几个异常就对应有几个catch块,若多个catch块中异常出现继承关系,父类异常catch块放在最下面.
建立在进行catch处理时,cartch中一定要定义具体的处理方式.
不要简单定义一句e.printStactTrance(),也不要简单的就输出一条语句.
*/
自定义异常:
因为项目中会出现特有的问题,而这些问题并未被java所描述并封装对象,
所以对于这些特有的问题可以按照java对问题封装的思想.
那么就需要对这个问题进行自定义的描述.

当在函数内部出现了throw抛出异常对象,那么就必须要给对应的处理动作:
要么在内部try catch 处理,要么在函数上声明让调用者处理.

如何自定义异常?
因为父类中已经把异常信息的操作都完成了.
所以子类要在构造时,通过super语句将异常信息传递给父类.
那么就可以直接通过getMassage方法获取自定义的异常信息.

必须是自定义异常继承Exception:
异常体系有一个特点:异常类和异常对象都需要被抛出,都具备可抛性,是throwable体系的独有特点,
只有这个体系中的类和对象才可以被throws和throw操作.

throws和throw的区别:
throws是用在函数上,后面跟异常类,可以跟多个,用逗号隔开.
throw是用在函数内,后面跟的是异常对象.

RuntimeException :
如果在函数内抛出该异常,函数上可以不用声明,
如果在函数上声明了该异常,调用者可以不进行处理.
之所以不用在函数上声明是因为不需要调用者处理,
当该异常发生了,希望程序停止,因为在运行时,出现了无法继续运算的情况,
希望停止程序后,对该代码进行修正.
自定义异常时,如果该异常的发生,程序无法继续运算,就让自定义异常继承 RuntimeException.

异常分为两种:
1,编译时被检测的异常.
2,运行时异常(编译时不被检测,RuntimeException 及其子类)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马