第二篇:Java之异常

1、异常类层次图

在这里插入图片描述
Object是Java中一切类的基类。
Throwable是Java异常类中的基础类,其有两个子类:Error和Exception。

Exception是指能够预料到的异常,比如IOException等。Exception又分为可检查和不可检查异常。可检查异常有IOException等,这类异常必须在编码阶段强制对其捕获,进行异常处理。不可检查异常有NullPointerException等异常,这类异常不会强制被捕获,往往是由于逻辑错误导致的异常。

Error是指不太正常的比较严重的错误,比如OutOfMemoryError等。Error比Exception严重的多,往往不可恢复。

2、throws 和 throw:

Java中throw和throws是成对使用的。throw可以将异常抛出到上层调用方。throw 出现在方法体内用来抛出实际异常实例,throws 写在方法体后边用来声明该方法要抛出的异常类型。

3、ClassNotFoundException和NoClassDefFoundError区别

3.1、ClassNotFoundException
当调用Class.forName()、ClassLoader.loadClass()和ClassLoader.findSystemClass()时,如果找不到类的时候会报这个异常。

3.2、NoClassDefFoundError
这种错误发生在,在编译期间正常,而在程序运行期间找不到对应的类。比如当new对象的时候,却找不到对应的类。造成原因有打jar包时漏掉了一些类,或者jar包出现了损坏。

4、加异常的两大原则

1、捕捉异常的时候要具体,不利于代码的阅读和处理。
2、捕捉到异常之后要处理,不能不管不顾。一般要打印出相关信息到日志中,包括异常发生的时间、方法、参数等信息,便于后期分析处理。

5、捕捉异常对性能的影响

1、try catch不应该包括太多的代码,因为JVM对try catch 中的代码无法被优化,所以只需要对必要的代码try catch。

2、当捕捉异常的时候,需要对异常类型进行实例化,会对异常的栈信息实例化,当发生异常的次数多了,也会消耗不小的资源。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值