《Java核心技术(第八版)》笔记之第11章异常、断言和调试

一、异常
1. 一个方法必须声明所有可能抛出的已检查异常,而未检查异常要么不可控制(Errror),要么就是应该避免发生的逻辑异常(RuntimeException)
2. 定义异常时应该包括两个构造器:一是默认的构造器;二是带有详细描述信息的构造器。
3. finally与return语句同时使用时,finally中的return语句可能会覆盖原始值。
例1:
	public static int function(int n) {
		try {
			int r = n * n;
			return r;
		} finally {
			if (n == 2) {
				return 0;
			}
		}
	}

例1中,n = 3时,将返回期望的值9;但当n=2时,finally中的0将覆盖期望中的4,最后返回的是0。

二、断言(Assert)
1.Java中有三种处理系统错误的机制:抛出异常、日志、使用断言。但断言是一种测试和调试阶段的战术性工具;而日志是一种整个生命周期都可以使用的策略性工具。

三、日志
1.不一定要通过捕获异常来生成堆栈跟踪。只要在代码的任何位置插入下面这条语句就可以获得堆栈跟踪。
Thread.dumpStack();

2.Java SE5.0在命令中增加了-Xlint选项,这样,编译器就可以对一些普遍容易出现的代码问题进行检查。格式为:
javac -Xlint //表示执行所有的检查

你可能感兴趣的:(读书笔记,异常,Java核心技术)