Java异常
来源:互联网 发布:c函数返回字符串数组 编辑:程序博客网 时间:2024/05/22 16:55
1.处理异常
在Java中所有异常都是由Throwable继承而来,但在下一层分解为Error和Exception两个分支。Error类层次结构描述了Java运行时系统的内部错误和资源消耗错误。应用程序不应该抛出这种类型的对象。
Exception类层次结构可以分解为两个分支:一个分支是派生于RuntimeException的异常,另一个分支包含其他异常。”如果出现RuntimeException异常,就一定是你的问题。“
Java将派生于RuntimeException类或Error类的所有异常成为“未检查异常”,其他的异常成为“已检查异常”。
遇到下面的情况时才会抛出异常:
(1)调用一个抛出已检查异常的方法,例如,FileInputStream构造器。
(2)在程序运行过程中发现错误,并且利用throw语句抛出一个已检查异常。
(3)程序出现错误,例如,a[-1]=0会抛出ArrayIndexOutOfBoundsException异常这样的未检查异常。
(4)Java虚拟机和运行时库出现的内部异常。
如果一个方法有可能抛出多个已检查异常,就必须在方法的首部列出所有的异常类,每个异常类之间用逗号(,)隔开。但是,不需要声明Java的内部错误,就是从Error继承的哪些异常。同样,也不应该声明从RuntimeException继承的那些未检查异常。
对于一个已经存在的异常类,将其抛出非常容易:(1)找到一个合适的异常类;(2)创建这个类的一个对象;(3)将对象抛出。
如果子类覆盖了超类的一个方法,那么,子类方法中声明的已检查异常不能超过超类方法中声明的异常范围。
2.捕获异常
想要捕获一个异常,就必须设置try/catch语句块。try语句块的最简单的形式如下:
try
{
code
more code
more code
}
catch
(ExceptionType e)
{
handler
for
this
type
}
如果try语句块中的任何代码抛出了一个在catch子句中指定的异常类,那么
1)程序将跳过try语句块中的其余代码。
2)程序将执行catch子句中的处理器代码。
如果在try语句中的代码没有抛出任何异常,那么程序将跳过catch子句。如果方法中的任何代码跑出了一个在catch子句中没有声明的异常类型,那么这个方法将立刻退出。
通常,应该捕获那些知道如何处理的异常,而将不知道如何处理的异常传递出去。如果想将异常传递出去,就必须在方法的首部添加一个throws说明符,以便告知调用者这个方法可能会抛出异常。
参考:
JAVA2核心技术,第11章
- java 异常,java,异常
- Java 异常 异常链
- Java异常
- Java 异常
- JAVA 异常
- Java异常
- java 异常
- Java异常
- java异常
- Java异常
- java异常
- java异常
- java异常
- java 异常
- java异常
- java异常
- java异常
- Java异常
- ios 判断点在区域范围内
- chunked Transfer-Encoding forbidden
- TabHost使用 调节Tab高度、背景色
- 微信飞机大战ios辅助攻略 双子弹作弊器使用教程
- fedora9 下安装 gcc(刚学习linux)
- Java异常
- 中文乱码问题总结
- java文件上传
- As3.0中的位图(Bitmap/BitmapData)编程
- 数据结构与算法—斐波那契查找
- 总线设备驱动
- 编程实现能组成多少个互不相同且无重复数字的三位数
- 枚举类使用(从键盘输入)
- 信息检索导论学习笔记(6)-文档评分,词项权重计算及向量空间模型