Java 的异常体系

 

Error和Exception的区别

  • Error:程序无法处理的系统错误,编译器不做检查
  • Exception:程序可以处理的异常,捕获后可能恢复

 

常见的Error以及Exception

RuntimeException

  • NullPointerException - 空指针引用异常
  • ClassCastException - 类型强制转换异常
  • IllegalArgumentException - 传递非法参数异常
  • IndexOutOfBoundsException - 下标越界异常
  • NumberFormatException - 数字格式异常

非RuntimeException

  • ClassNotFoundException - 找不到指定class的异常
  • IOException - IO操作异常

Error

  • NoClassDefFoundError - 找不到class定义的异常
  • StackOverflowError - 深递归导致栈被耗尽而抛出的异常
  • OutOfMemoryError - 内存溢出异常

 

Throw 和 throws 的区别:

位置不同:

1. throws 用在函数上,后面跟的是异常类,可以跟多个;而 throw 用在函数内,后面跟的

是异常对象。

功能不同:

2. throws 用来声明异常,让调用者只知道该功能可能出现的问题,可以给出预先的处理方

式;throw 抛出具体的问题对象,执行到 throw,功能就已经结束了,跳转到调用者,并

将具体的问题对象抛给调用者。也就是说 throw 语句独立存在时,下面不要定义其他语

句,因为执行不到。

3. throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw 则是抛出了异常

执行 throw 则一定抛出了某种异常对象。

4. 两者都是消极处理异常的方式,只是抛出或者可能抛出异常,但是不会由函数去处理异

常,真正的处理异常由函数的上层调用处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值