`
poyunri
  • 浏览: 29501 次
文章分类
社区版块
存档分类
最新评论

11.1 处理异常

阅读更多

当程序出现异常时,应当次啊去一些异常处理措施:

·返回到一种安全状态,并能够让用户执行一些其他命令;

·允许用户保存所有操作结果,并以合适的方式终止程序。


需要关注的异常问题:

1、用户输入错误

2、设备错误

3、物理限制

4、代码错误


异常具有自己的语法和特定的继承结构,下面开始介绍:

11.1.1异常分类

所有已成都由Throwable继承而来,Throwable分为Error和Exception;Exception又分为RuntimeException和IOException。

Error类描述Java运行是系统的内部错误和资源耗尽错误。这种情况很少出现

RuntimeException是由程序本身导致的异常;IOException是由其他问题如I/O问题导致的异常。


RuntimeException的异常有以下几种情况:

·错误的类型转换

·数组访问越界(通过检查数组下标是否越界来避免ArrayIndexOutOfBoundsException异常)

·访问空指针(在使用变量之前检测是否为空来避免NullPointerException异常)

如果出现RuntimeException表明一定是你的问题!!!


IOException的异常包括:

·试图在文件尾部读取数据

·试图打开一个错误格式的URL

·试图根据给定的字符串查找class文件,而这个字符串代表的类不存在


Java规定将派生于Error类和RuntimeException类的异常称为未检查异常,IOException称为已检查异常。


11.1.2声明已检查异常

方法应在首部声明有可能出现的异常。例如,下面是标准类库中提供的FileInputStream类的一个构造器的声明:

public FileInputStream(String name) throws FileNotFoundException

表示该构造器将根据给定的参数String创建一个FileInputStream对象,也有可能抛出一个FileNotFoundException异常。


遇到以下状况时要抛出异常:

1、调用一个已检查异常的方法

2、程序运行时发现错误,利用throw语句抛出一个已检查异常

3、程序错误

4、JVM和运行时库出现的内部异常


11.1.3如何抛出异常

抛出存在的异常类:

1、找到一个合适的异常类

2、创建这个类的对象

3、将对象抛出。

方法一旦被抛出,这个方法就不能返回到调用者。


11.1.4创建异常类

当遇到任何标准异常类都无法准确描述的问题时,就可以自己创建异常类。要做的是定义一个派生于Exception的类,或派生于Exception的子类。例如:

定义一个派生于IOException的类,定义的类应该包含两个构造器,一个实默认构造器,一个实带有详细描述信息的构造器(超类Throwable的toStrring方法会打印出这些详细信息,这样便于调试)

class FileFormatException extends IOException {
	public FileFormatException() {}
	public FileFormatException(String gripe) {
		super(gripe);
	}
}

//现在就可以自定义异常类型了
String readData(BufferedReader in) throws FileFormatException {
	....
	while(...) {
		if (ch == 1) {
			if (n < len)
				throw new FileFormatException();
		}
		....
	}
	return s;
}

API:java.lang.Throwable 1.0

·Throwable()

构造一个新的Throwable对象,该对象没有详细的描述信息

·Throwable(String message)

构造一个新的throwable对象,该对象有详细的描述信息

·String getMessage()

获取Throwable对象的详细描述信息


分享到:
评论

相关推荐

    赤兔行车记录仪视频恢复 v11.1.zip

    赤兔行车记录仪视频恢复软件可以处理行车记录仪拍摄的视频录像的丢失,损坏,以及误删除和病毒破坏等情况下的数据恢复。并且可针对行车记录仪拍摄视频碎片进行快速地视频恢复或者智能拼接多个视频碎片并进行导出以及...

    java程序设计教程课件

    第7章 异常处理 7.1 异常基本概念介绍 7.2 异常的抛出和捕获 7.3 创建自己的异常类 第8章 输入输出 8.1 输入输出概述 8.2 各种输入输出流 8.3 文件随机存取: RandomAccessFile类 第9章 多线程与Applet 9.1.1 ...

    javascript完全学习手册2 源码

    13.3.3 使用trycatch语句处理异常 13.3.4 Error对象 13.3.5 使用throw语句 13.4 JavaScript调试技法 13.4.1 使用alen()语句 13.4.2 使用write()语句 13.4.3 抛出自定义异常消息 第4篇 JaVflscript特效...

    c++语言程序设计(第三版)

    12.3 异常处理中的构造与析构 12.4 小结 习题 第13章 MFC库与Windows程序开发概述 13.1 Windows的编程模式 13.2 MFC库简介 13.3 使用VisualC++开发Windows程序的步骤 13.4 小结 习题 参考文献

    C++标准程序库STL的架构

    3.2 错误处理和异常处理 7 3.2.1 异常头文件 7 3.2.2 标准异常分类 7 3.2.3 异常规格 8 3.2.4 如何在程序中找出异常类型 8 3.2.5 抛出标准异常和实现自己的异常 8 3.3 配置器 8 4 通用工具 9 4.1 简介 9 4.1.1 类别 ...

    JAVA语言程序设计【高清版】.pdf

    130 7.2.1 异常处理相关语句 130 7.2.2 公共异常 132 7.3 抛出语句 133 7.4 创建自己的异常 135 习题 137 第8章 图形用户界面设计 140 8.1 AWT与Swing 140 8.1.1 AWT包与Swing包 140 8.1.2 组件、...

    vc++6.0 程序设计学与用教程

    本书全面介绍了Java语言的特点和功能,主要包括Java编程基础知识、Java算术运算符、Java编程语法、面向对象程序设计基本概念、系统类的使用和应用、图形用户界面设计、图形处理、多媒体处理、异常处理、多线程、网络...

    javascript完全学习手册1 源码

    13.3.2 触发onError事件处理异常 375 13.3.3 使用try...catch语句处理 异常 377 13.3.4 Error对象 379 13.3.5 使用throw语句 380 13.4 JavaScript调试技巧 381 13.4.1 使用alert()语句 382 13.4.2 使用write()语句 ...

    Python 中文手册

    8.3. 异常处理 8.4. 抛出异常 8.5. 用户自定义异常 8.6. 定义清理行为 8.7. 预定义清理行为 9. 类 9.1. 术语相关 9.2. Python 作用域和命名空间 9.2.1. 作用域和命名空间示例 9.3. 初识类 9.3.1. 类定义语法 9.3.2. ...

    python简明教程.chm

    说明:解压后要注意把文件属性修改一下,解锁即可用 目录表 前言 本书的读者 本书的由来 本书目前的状况 ...13.1 处理异常 13.2 如何引发异常 14.1 使用sys.argv 15.1 使用列表综合 15.2 使用lambda形式

    简明python教程(chm)

    目录表 前言 本书的读者 本书的由来 本书目前的状况 官方网站 约定条款 欢迎给我反馈 值得思考的一些东西 ...13.1 处理异常 13.2 如何引发异常 14.1 使用sys.argv 15.1 使用列表综合 15.2 使用lambda形式

    简明python教程

    目录表 前言 本书的读者 本书的由来 本书目前的状况 官方网站 约定条款 欢迎给我反馈 值得思考的一些东西 ...13.1 处理异常 13.2 如何引发异常 14.1 使用sys.argv 15.1 使用列表综合 15.2 使用lambda形式

    GoldenGate企业级运维实战

     9.1 goldengate常见异常处理  9.2 使用reperror进行错误处理  9.3 ddlerror处理ddl复制错误  9.4 discardfile记录进程错误信息  9.5 goldengate常见错误分析  9.6 中文表/中文字段处理  9.7 logdump分析...

    C++大学教程,一本适合初学者的入门教材(part2)

    13.4 C十十异常处理基础:try、throw、catch 13.5 简单异常处理例子:除数为o 13.6 抛出异常 13.7 捕获异常 13.8 再抛出异常 13.9 异常指定 13.10 处理意外异常 13.11 堆栈解退 13.12 构造函数、析构函数与...

    C++大学教程,一本适合初学者的入门教材(part1)

    13.4 C十十异常处理基础:try、throw、catch 13.5 简单异常处理例子:除数为o 13.6 抛出异常 13.7 捕获异常 13.8 再抛出异常 13.9 异常指定 13.10 处理意外异常 13.11 堆栈解退 13.12 构造函数、析构函数与...

    java编程规范(第三版)

    11.1 异常的起因 227 11.2 异常的编译时检查 227 11.3 异常处理 229 11.4 异常的示例.. 231 11.5 异常层次结构 232 第12章 执行 234 12.1 虚拟机启动 234 12.2 加载类和接口 236 12.3 链接类和接口 237 ...

    Java Bug模式详解

    常确保所有客户端程序可处理异常情况 22.1.5 定义新的异常 类型来精确区分各种异常情况 22.1.6 利用特定State类 22.1.7 将类型转换和 instanceof测试降至最少 22.1.8 使用Singleton设计模式帮助最小化...

Global site tag (gtag.js) - Google Analytics