Java Exception

Throwable
所有错误和异常类的超类,只有Throwable及其继承类的实例才能被虚拟机或者throw语句抛出,只有Throwable及其继承类才能作为catch语句的参数;
Throwable主要有Error和Exception两个继承分支。

Error
常见错误
  • AssertionError
  • IOError
  • InternalError
  • OutOfMemoryError
  • StackOverflowError
  • VirtualMachineError
1. 所有错误类的超类;
2. 用于表示程序不应该尝试捕获的严重错误,例如硬件问题、内存不足等。
3. Error及其继承类视作unchecked Exception,不需要显式在签名中使用throws关键字声明。

Exception
1. 所有异常类的超类;
2. 用于表示程序可以捕获的异常,主要有checked Exception和unchecked Exception两种。

Checked Exception
常见异常
  • FileNotFoundException
  • IOException
  • InterruptedException
  • NoSuchFieldException
  • NoSuchMethodException
  • SQLException
1. RuntimeException类及其继承类之外的Exception类及其继承类;
2. 设计者认为调用者能够处理的异常;
3. 构造函数或方法内部要抛出异常,必须显式在签名中使用throws关键字声明;
4. 受检查的异常, 调用者必须处理异常或继续向外抛出,否则编译不能通过。

Unchecked Exception
常见异常
  • ArrayIndexOutOfBoundsException
  • ClassCastException
  • DateTimeException
  • IllegalArgumentException
  • IndexOutOfBoundsException
  • NullPointerException
1. RuntimeException类及其继承类;
2. 设计者认为调用者不一定能够处理的异常;
3. 构造函数或方法内部要抛出异常,不一定显式在签名中使用throws关键字声明。即使在签名中声明,通常只是用于提示调用者可能发生的异常,调用者可以根据情况选择是否处理异常;
4. 不受检查的异常, 发生这种错误通常由于程序员编码的漏洞,例如数组越界异常可以在访问数组元素之前使用Array.length判断下标是否越界,类型转换异常可以在对象转型之前使用instanceof关键字判断是否允许进行转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值