一,异常概述
异常就是程序在运行时出现的不正常情况
异常的由来:
异常问题也是现实生活中一中具体的事物表现,可以抽象到java中以类的形式进行描述,并封装成对象。其实就是java对不正常情况进行描述后的对象体现。
对于严重的问题,java一般通过Error类进行描述。不严重的则通过Exception类描述。
Error一般不编写针对性代码处理,Exception可处理。
二,异常的体系
Throwable
|——Error
|——Exception
|——RuntimeException
异常体系的特点:
异常体系中的所有类以及建立的对象都预备可抛性。可以被throw或throws。
throw和throws的用法区别
throw定在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出异常类,并可以抛出多个异常类,用逗号分开。
如果函数内容有throw抛出了异常对象,并未进行try处理,必须要在函数上声明,否则编译失败。当然RuntimeException除外~
三,异常处理语句
try
{
需要被检测的代码;
}
catch (someException e)
{
处理异常的代码;
}
finally
{
一定会执行的代码;
}
有三种结合方式,可以没有catch或者没有finally,但是一定有try。
四,异常的处理原则:
1,处理方式两种:可try可throw。
2,调用到抛出异常的方法时,抛出几个,就catch处理几个。
3,多个catch,父类的catch放在最下面。
4,catch内,需要定义针对性的处理方式。
5,当捕获到的异常,本功能处理不了时,可以继续在catch中抛出。
如果该异常处理不了,但并不属于该功能出现的异常,可以讲异常转换后,再抛出和功能相关的异常。
五,自定义异常
定义类继承Exception或者RuntimeException。
1,为了让改自定义类具备可抛性
2,为了让该类具备操作异常的具体办法。
当要定义自定义异常的信息时,可以使用父类已经定义号的功能。将异常信息传递给父类的构造函数。