java基础笔记-异常处理

异常分类

Java中的异常分类

Error

Error 类层次结构描述了 Java 运行时系统的内部错误和资源耗尽错误。 应用程序不应该
抛出这种类型的对象。 如果出现了这样的内部错误, 除了通告给用户,并尽力使程序安全地
终止之外, 再也无能为力了。

RuntimeException

应用程序中数组越界,空指针,类型转换失败等都属于RuntimeException,“ 如果出现 RuntimeException 异常, 那么就一定是你的问题”

IOException

文件或类不存在,试图在文件尾部的后面读取数据等都属于IOException

使用异常

可以使用try-catch语句捕获异常,这是保证程序健壮性的重要手段,但try-catch语句会占用资源,因此不建议每个方法都捕获异常,而是在控制器中统一捕获,并将异常信息(时间,地点:类名-方法名-行数,主机IP,涉及SQL)存入数据库或本地文件。如果一个方法确定有报异常的可能,就在方法名后面用throws …Exception标记异常,则调用该方法的地方则必须处理抛出的异常

Finally子句

finally子句一般写法:用于保证某些语句即使在异常情况下也能执行(打开的资源必须释放)。

try{
 InputStrean in = ...
}
catch(Exception ex){

}
Finally{
	in.close();
}

但这样写如果Finally语句中也出现异常,这个异常就捕获不了,资源也得不到释放。所以有了如下写法。

try{
	...
	finally{
	...
	}
}
catch(Exception ex)
{
...
}

这个写法可以保证即使有异常也能执行finally块中的语句,且finally块中的异常也能被捕获。如果只是一些资源要即使释放,可以使用更简便的写法。

try(InputStrean in = ...;InputStream ips = ...){
	...
}
catch(Exception ex){
	...
}

这样带资源的try语句在结束时会自动调用in.close()和ips.close()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值