黑马程序员技术交流社区
标题:
异常 多异常 自定义异常 RuntimeException
[打印本页]
作者:
695010894
时间:
2016-3-27 21:15
标题:
异常 多异常 自定义异常 RuntimeException
/*
异常就是程序在运行时出现的不正常情况.
原因:问题也是现实生活中具体的事物,也通过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 及其子类)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2