您的位置:首页 > 编程语言 > Java开发

Java的异常体系

2019-07-18 00:35 134 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_42191317/article/details/96390179

异常的作用

在程序运行过程中出现错误,导致程序出现非预期场景。异常处理可以保证出现错误后,控制接下来的程序流程,是选择定位错误

信息,还是抛出异常或捕获异常、还是避免程序非正常退出,都取决于我们。

异常体系的引入增加了程序的健壮性。

异常的体系结构

Java的异常体系结构如上图所示,异常的顶级类是Throwable类,它是Object的子类,实现了Serializable接口,在其下,分为以下两大类:

  • Error
  • Exception RuntimeException
  • Checked Exception

Error和Exception的区别

Error和Exception都继承自Throwable

  • Error:程序无法处理的系统错误,编译器不做检查
  • Exception:异常,程序可以处理的异常,捕获后可能恢复
  • 前者无法处理,而后者可以处理
  • Error属于JVM需要承担的责任,RuntimeException是程序应该承担的责任,Checked Exception是编译器应该承担的责任

Exception

Exception又可以分为RuntimeException(运行时异常)和Checked Exception(也叫受检查异常)。

  • RuntimeException:不可预知的,程序应当自行避免
  • Checked Exception:可预知的,从编译器效验的异常,不进行处理,编译器会报错

常见的Error和Exception

Error

  • NoClassDefFoundError:找不到class定义的错误,可能是类依赖的class文件或者jar包不存在
  • StackOverflowError:深递归导致栈被耗尽而抛出的错误
  • OutOfMemoryError:内存溢出异常

RuntimeException

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

Checked Exception

  • IOException:IO操作异常
  • SQLException:SQL语句异常
  • ClassNotFoundException:找不到指定class异常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: