Java的异常处理基础

先看张Java中的异常层次结构图(图来自《Java核心技术 卷1》):
  
  可以看到不管Error还是Exception都继承自Throwable类。
  
  Error和Exception有什么区别:
  
  Error主要是系统的内部的错误(比如JVM出问题了)和资源耗尽错误(内存空间不足),程序无法处理这类问题,只能终止。
  Exception表示程序可以处理的异常,下面看下IOException和RuntimeException的区别。
  
  RuntimeException是因为程序员自身的问题导致的,常见的有:
  ArrayIndexOutOfBoundsException,ArithmaticException,NullPointerException。。。
  
  IOException不是程序本身的问题,比如你读个文件,本来应该有的,结果不知道被谁删了,结果就FileNotFoundException。其它还有EOFException,MalformedURLException之类。。。
  
  下面再来区分两个概念(好多概念。。。):
  未检查异常:将派生于Error类或RuntimeException的所有异常归为未检查异常,编译器不会检查是否为该种异常提供异常处理,作为程序员也不应该去处理。
  已检查异常:未检查异常之外的就叫已检查异常,编译器会检查是否为该种异常提供异常处理。
  
  接着再看几组概念(。。。):
  throws:声明一个方法可能抛出的所有异常信息,出现在方法头,只声明不处理,将异常往上传,谁调用该方法就交给谁处理。
  throw:出现在方法体内,你自定义的异常一定要用throw抛出,程序会在throw语句后立即终止,一旦方法抛出了异常,这个方法就不可能返回到调用者了。只能抛出Throwable子类的对象。
  还有捕获异常,有时间单独写下吧。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值