Java学习笔记【异常、断言】
2015-09-26 22:33
579 查看
1、异常分类
所有异常都是由Throwable继承而来,然后划分为两类:Error和Exception。 Error类描述了Java运行时内部错误和资源耗尽错误。此种情况少见。 设计Java时需要关注Exception层次:一个为RuntimeException;另一个为其它异常。 RuntimeException:程序错误导致的异常。(错误类型转换、数组越界、访问空指针等) 其它异常:程序本身没问题,像I/O错误这类问题导致的异常属于其它异常。(打开一个不存在的文件、查找的类不存在等) 未检查异常:派生于Error类或者RuntimeException类的所有异常。
2、声明已检查的异常
一般形式: class Myclass { ... public Image loadImage(String s) throws IOException { ... } .. }
3、如何抛出异常
举例: String gripe = "Content-length: " + len + ",Recieved: " + n; throw new EOFException(gripe); Java只能Throwable子类的对象,而在C++中,却可以抛出任何类型的值。
4、创建异常类
可能遇到任何标准异常类都不能满足自己的要求,此时需要创建自己的异常类,创建异常类示例: class FileFormatException extends IOException { public FileFormatException(){} public FileFormatException(String gripe) { super(gripe); } }
5、捕获异常
捕获异常,必须设置try/catch语句块。最简单的try语句块如下所示: try { code more code more code } catch(ExceptionType e) { handle for this type }
捕获多个异常: try { ... } catch(ExceptionType_1 e) { ... } catch(ExceptionType_2 e) { ... } catch(ExceptionType_3 e) { ... }
6、finally子句
不管是否有异常被捕获,finally子句总会被执行。 常用于放关闭资源(比如关闭打开的文本等)语句。
形式: try { ... } catch(ExceptionType e) { ... } finally { ... }
7、使用断言
断言机制允许在测试期间向代码中插入一些检查语句。 Java语言引入了关键字assert。这个关键字形式: assert 条件; assert 条件:表达式; 这两种形式都会对条件进行检测,如果结果为false,则抛出一个AssertionError异常。
相关文章推荐
- Java:i++问题(详细分析)
- java正则表达式积累
- Java输出一个对象
- Java 常用正则表达式
- Spring(六):Bean 的作用域
- 关于java中除0的问题
- 搭建JavaWeb项目时出现的问题
- 浅识异常
- Spring-声明式事务控制
- Java课程作业1
- 为什么eclipse改错后还是显示错误
- getResource()与decode()
- java并发编程学习:用 Semaphore (信号量)控制并发资源
- Java:多个数求和
- SpringMVC 流程(6)-- 常用注解
- 如何将java代码生成一个bat文件
- java程序优化
- Android Eclipse快捷键
- Java 静态代理和动态代理
- java静态代理和动态代理