异常出现的原因
1.用户输入错误:用户在需要填入数据的时候,将不符合要求的数据进行添加。例如需要输入一个整型的数据,而用户却输入了一个字符串类型的数据。此时就应当提示用户输入的格式错误,并返回界面重新输入。
2.代码本身错误:进行数据运算时,数据的长度引起的错误,或者是数组越界、算法错误、空引用等问题
3.环境因素:磁盘空间或者内存不足所引起的错误。
异常的分类
Error:定义Java运行时的内部错误以及资源耗尽错误。表示很难恢复的错误,例如内存越界。一般不期望用户来进行处理。
RuntimeException:用来表示设计或者实现方面的问题,例如数组越界、类型转换错误、去访问一个没有初始化的对象。在出现这个错误的时候,一般不需要处理,运行的时候,环境会输出一条信息语句,提示用户修正错误。
其他异常:表示是运行的时候因环境因素影响可能发生并可以被处理的问题。例如查找不到文件或者是一个不完整的路径等。因为用户的错误很可能就会导致这类问题的发生。
处理异常
在出现异常的时候,可以直接捕获处理,也可以先不对它进行处理而是把它抛给上面的调用者。
try/catch捕获异常、throws声明异常、throw抛出异常、自定义异常等。
进行异常处理的时候,可能会将抛出异常的代码放置到try块中,然后创建一个catch语句块,catch语句块中有一个异常类型和一个代表这个类型的对象引用。
异常声明就是指一个方法不处理它所产生的异常,而是调用层次向上传递,谁调用的这个方法,这个异常就由谁来进行处理。
Throw语句用在具体方法中抛出异常,它的语法格式如下:
throw exception;
在以上的语句中,throw是关键字,用于抛出异常。参数exception则是表示要抛出的异常对象,该对象应该是throwable类的子类,而且只能够是一个。
两个或者是多个不同的异常出现在同一个程序中,并且会发生嵌套抛出就是异常链,异常链是一个比较抽象的概念。
定义自己的异常
前面介绍了一些Java本身自带的一些异常,但是在某些特定的情况下,还需要自己去创建一个异常类型,创建异常类型只需要继承Throwable类或者是它的子类Exception就可以了。本节中就主要介绍一下如何使用自己定义的异常类。
创建异常的一般形式如语法:
class 类名 extends Exception
{
//类体
}
如何使用自己创建的异常类?