《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 //表示执行所有的检查
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值