异常、断言和日志

1、错误处理
1)异常分类
异常对象都派生于Throwable类的一个实例
Throwable下一层分为Error与Exception
Error描述了Java运行时系统内部错误和资源耗尽错误(很少出现)
Exception下一层分为RuntimeException与其他异常
RuntimeException包括

  1. 错误的类型转换
  2. 数组访问越界
  3. 访问空指针

其他异常包括

1.试图在文件尾部后读取数据
2.试图打开不存在的文件
3.试图根据给定的字符串查找Class对象,而这个字符串表示的类不存在

Error与RuntimeException称为受查异常
其他异常被称为非受查异常

2、创建异常类
例:定义一个派生于IOException的类,习惯上定义两个构造器,一个默认构造器,另一个带有详细描述信息的构造器

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

3、捕获异常
对于知道如何处理的异常应该进行捕获,对于不知道如何处理的异常应该传递throw
4、再次抛出异常

try{
	...
}catch(SQLException e){
	throw new ServletException("database error:"+e.getmessage());
}

更好的处理方法

try{
	...
}catch(SQLException e){
	Throwable  se=new ServletException("database error");
	se.initCause(e);
	throw se;
}
//捕获到异常时,可以使用Throwable e=se.getCause();得到原始异常

5、使用断言
assert 条件;
assert 条件:表达式;表达式就是产生一个消息字符串
在开发测试程序时使用断言
6、记录日志
1)基本日志
生成简单的日志记录,使用Logger.getGlobal().info();
Logger.getGlobal().setLevel(Level.OFF);将会取消所有日志
2)高级日志
将日志记录到自定义日志记录器
调用getLogger()创建或获取记录器
private static final Logger myLogger=Logger.getLogger(“com.mycompany.myapp”);
注:未被引用的日志记录器可能会被垃圾回收,所有使用静态变量存储。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值