美文网首页java基础
Java 常见异常及层次结构

Java 常见异常及层次结构

作者: 一一道长一一 | 来源:发表于2016-07-08 14:53 被阅读208次

1.ConcurrentModificationException

出现场景:同时对容器进行遍历和修改时会抛出该异常

Fixed方法:使用CopyOnWriteArrayList等免锁容器或避免同时读写容器

2.InterruptException

出现场景:在调用了Thread.interrupt()或ExecutorService.shutdownNow()后线程正在sleep0者执行其他阻塞操作的时候,I/O操作除外。(ExecutorService.shutdown()不是打断sleep)

Fixed方法:不需要fixed,被打断是正常行为。

3.OutOfMemeoryError

出现场景:内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。

Fixed方法:首先确定是哪个部分溢出:分为Java heap space(堆溢出)  和  PermGen space(永久保存区,这部分区域不会被GC回收)。

永久区溢出可以通过调整JVM的 -XX:MaxPermSize 来调整。

堆溢出可以通过调整JVM的启动参数 -Xmn、-Xms、-Xmx,一般-Xms和-Xmx不超过80%,-Xmn为-Xmx的1/4。

可以通过在JVM启动参数中添加-XX:+HeapDumpOnOutOfMemoryError来确保发生内存溢出时生成dump文件,然后使用Memory Analyze工具来分析dump文件。还可以使用实时分析工具Jprofile。

4.StackOverflowError

出现场景:栈满了的时候就会抛出该异常。栈帧太多,也就是函数调用层级过多时就会出现此异常,检查是否有死递归的情况。比如定义了无限多个int变量,就会出此异常。

Fixed方法:调整JVM启动参数 -Xss 来进行栈大小的调整。

5.Classnotfoundexception

没有找到加载的类时报错的。查看那个类在不在就知道了。

6.IOException

EOFException    当输入过程中意外到达文件或流的末尾时,抛出此异常

FileNotFoundException   文件不存在的时候抛出此异常

7.异常的层次结构

Thorwable类所有异常和错误的超类,有两个子类Error和Exception,分别表示错误和异常。

其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常,又叫非检查异常和检查异常。

运行时异常包含:ClassCaseException,NullPointException,IndexOutOfBoundsException等。

非运行时异常包含:IOException,ClassNotFounException,InterruptException等。

Error包含:OutOfMemoryError、StackOverFlowError、ThreadDeath等比较严重的系统级别错误,Error一般会导致系统挂掉。

相关文章

  • Java 常见异常及层次结构

    1.ConcurrentModificationException 出现场景:同时对容器进行遍历和修改时会抛出该异...

  • Java异常

    Java异常类层次结构图: 通常,Java的异常(包括Exception和Error)分为 可查的异常(check...

  • Java异常层次结构

    一、什么是Java异常? Java异常就是代码编译和运行中出现的一些特殊情况,通过异常我们可以查找出异常的代码进行...

  • java异常层次结构

    java异常层次结构说明 直接上图: 介绍如下: Error: 错误。指的是jvm遇到的重大的问题,如内存溢出、...

  • Java程序常见异常及处理汇总

    Java异常结构分支图 常见异常总结图 Java中异常分类 Throwable类有两个直接子类: 1.Except...

  • java常见异常和常见网络状态码

    Java异常(Exception)处理及常见异常[http://c.biancheng.net/view/6635...

  • JAVA 异常机制

    try-catch 异常机制的本质 异常处理方式 java异常类层次结构图 Error 表明系统JVM已经处于不可...

  • Java异常分类及常见异常

    (1) 运行时异常 定义:RuntimeException及其子类都被称为运行时异常。 特点:Java编译器不会检...

  • JAVA相关网上资源

    Java SE API 和文档 Java趣味编程100例 趣味白话java之面向对象 Java 常见异常及趣味解释...

  • Java异常

    异常类层次结构图: 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出)。 Throwab...

网友评论

    本文标题:Java 常见异常及层次结构

    本文链接:https://www.haomeiwen.com/subject/yienlttx.html