第4章
Java异常章异常
Java
程序执行时,不可避免出现各种各样的错误,那么出现错误时如何处理?由谁来处理?Java采用“异常”来处理和解决这些
问题。如果能够恰当地使用Java异常,这将对程序开发人员大有裨益。本章将专门讨论Java对异常的处理。
1
本章知识要点:本章知识要点:
????理解Java异常产生的原因了解Java异常层次结构掌握处理异常的基本方法掌握创建自定义异常
2
4.1异常介绍
?在Java语言中,异常又称为例外,是运行时错误。由于Java程序是在
网络环境下运行的,因此,安全应当是首要考虑的因素。为了能够及时有效地处理程序中的运行错误,Java专门引入了异常类和异常类层次。在本节将讨论产生异常的原因和常见异常类及其层次结构。
3
4.1.1异常产生原因
异常是在程序运行过程中发生的错误,比如除0溢出、数组越界、文件找不到等,这些异常的发生将阻止程序的正常运行。为了加强程序的健壮性,在程序
设计时,必须考虑到可能发生的异常并做出相应的处理。
4
4.1.2异常类概述
?在Java中,任何异常对象都是java.lang.Throwablel类或其子类的对象,即所有异常类型都是内置类Throwable的子类。因此,Throwable在异常类层次结构的顶层。紧接着Throwable下面的是两Throwable个把异常分成两个不同分支的子类:Exception和Error。
5
4.2处理异常
?Exception类型的异常可以被自己编写的程序捕获或声明。Java的异常处理是通过5个关键字来实现的:try、catch、throw、throws和finally。异常是程序在编译或运行时刻产生的一类错误,那么当异常出现时我们该如何处理它们呢?
学习完这一节后将会得到一个圆满的解决方法。
6
4.2.1捕获异常
?捕获异常是一种积极的处理异常的方式。在Java中,通常是采用try-catch语句捕获异常并处理。
7
4.2.2抛出和声明异常
?到目前为止,只是获取了被Java运行时
系统抛出的异常,并在catch块中进行处理。除了捕获异常外,我们还可以在程序中主动抛出异常和声明异常。
异常
ArithmeticExceptionArrayIndexOutOfBoundsExceptionArrayStoreExceptionClassCastExceptionIllegalArgumentExceptionIllegalMonitorStateExceptionIllegalStateExceptionIllegalThreadStateExceptionIndexOutOfBoundsExceptionNullPointerExceptionNumberFormatExceptionSecurityExceptionStringIndexOutOfBoundsUnsupportedOperationException
概述
算术错误,如被0除数组下标出界数组元素赋值类型不兼容非法强制转换类型调用方法的参数非法非法监控操作,如等待一个未锁定线程环境或应用状态不正确请求操作与当前线程状态不兼容某些类型索引越界非法使用空引用字符串到数字格式非法转换试图违反安全性试图在字符串边界之外索引遇到不支持的操作
8
4.2.3finally语句语句
finally关键字是对Java异常处理模型的最佳补充。finally结构使代码总会执行,而不管有无异常发生。使用finally可以维护对象的内部状态,并可以清理非内存资源。
9
4.3自定义异常
尽管Java的内置异常处理大多数常见运行时错误,但是在实际应用中,由于环境的不同,异常对象返回的信息不能精确的描述错误信息,此时就需要我们自己编写异常类,来描述异常。编写自定义异常非常简单,因为自定义异常往往从Exception派生而来。