美文网首页
详解Java中异常的分类

详解Java中异常的分类

作者: 平凡的柚子 | 来源:发表于2020-12-11 17:10 被阅读0次

下面介绍几种常见的异常类型,便于在出错时对程序进行查错:

(1)Exception 各种异常的根类

如果你不知道将发生的异常集体属于哪,而可以肯定种这个地方会出现异常时,可以把异常类型定义为Exception。

(2)ArithmeticException 算数运算错误异常

这个异常是在算数运算时经常遇到的,常见的情况是除数为0时抛出的异常。

(3)ArrayIndexOfOutBoundsException 数组下标越界

编程时要记住Java数组下标是从0开始的,数组下标最大值为数组长度减1,如arr[10],最后一个数组元素是arr[9],如果写成arr[10]就会出现ArrayIndexOfOutBoundsException异常。

(4)NullPointException 空指针异常

这个异常是针对调用未经初始化或未定义的对象抛出的异常。

(5)ClassNotFoundException 不能加载所需的类

在java文件编译后,可能是由于需要把.class文件移到了其他的文件夹,此时引用这个.class文件要注意修改其路径,否则会抛出ClassNotFoundException异常。

(6)InputMismatchException 输入的数据类型与所需类型不匹配异常

比如你需要int类型,但是通过输入框得到的是String类型,就会抛出InputMismatchException异常。

(7)IllegalArgumentException 方法接受非法参数

这个是传入方法中的参数类型不正确,如方法plus(int a,int b),调用时写成a.plus(1,a)就会出现

IllegalArgumentException异常。

(8)NumberFormatException 字符串转换成数字异常

在数据类型强制转换时出现的异常,字符串“123”转换成数字123不会出现异常,但是字符串“1@23”转换成int类型就会抛出ClassCastException异常。

给大家免费分享一套资料,这套资料包含面试题,视频,简历模>板,成长路径,核心总结文档,需要这份资料的小伙伴,点击这里即可免费领取,备注暗号 简书

这些是常见的RunTimeException(运行时异常),也就是说,这些异常不需要强制声明会抛出,或者强制捕捉的异常。

举两个例子
程序出了那种异常JVM就会抛出相应的异常
比如代码:

ArrayIndexOutOfBoundsException  public void demo1(){
  try{  int a = 10/0;  }
catch(ArithmeticException ae)
{  System.out.println(“算术运算异常:”+ae.getMessage());   }
catch(Exception e)
{  System.out.println(“其他异常”+e.getMessage());   }  }
public void demo2()
{  String strList[] = {"a","b","c"};  try{  String str = strList[4].toString();  }
catch(ArrayIndexOutOfBoundsException ae)
{  System.out.println(“数组下标越界:”+ae.getMessage());   }
catch(Exception e)
{  System.out.println(“其他异常”+e.getMessage());   }  } 

总之Exception是所有异常的父类.如果你出现的异常被他的子类捕捉了,他就不会再捕捉比如demo2()方法
如果是出现了ArrayIndexOutOfBoundsException Exception就不会捕捉了! 那么为什么要捕捉多次呢?
因为ArrayIndexOutOfBoundsException只是数组下标越界的异常,所以它比Exception更的仔细,更能说明异常的原因!
如果不是出现ArrayIndexOutOfBoundsException则Exception就会来捕捉

所有异常,都继承自java.lang.Throwable类。
Throwable有两个直接子类,Error类和Exception类。
Exception
Exception则可使从任何标准Java库的类方法,自己的方法以及运行时任何异常中抛出来的基类型。
异常可分为执行异常(RuntimeException)和检查异常(Checked Exceptions)两种
RuntimeException
RuntimeException在默认情况下会得到自动处理。所以通常用不着捕获RuntimeException,但在自己的封装里,也许仍然要选择抛出一部分RuntimeException。
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。

相关文章

  • 详解Java中异常的分类

    下面介绍几种常见的异常类型,便于在出错时对程序进行查错: (1)Exception 各种异常的根类 如果你不...

  • Java基础_异常

    本文主要从如下几点学习Java中的异常 异常的分类 异常分类结构图 异常处理的方法 异常的分类 Java库中本身内...

  • 关于异常

    参考资料:JVM如何处理异常深入详解 一、Java 异常的概念和分类 所有的异常都派生于Throwable类的一个...

  • Java异常处理-检查性异常、非检查性异常、Error

    一、Java异常处理详解 Java异常处理-笔记中的@doublefan讲解得非常通熟易懂 二、检查型异常和非检查...

  • Exception

    Java 中 9 个处理 Exception 的最佳实践 Java 中的异常和处理详解 如何优雅的设计 Java ...

  • 第34节:Java当中的异常

    Java当中的异常 了解Java当中的异常,那么什么是异常呢?异常又有什么分类呢?异常中的特殊结构:try...c...

  • Java自学-异常处理 异常分类

    Java 中异常的分类 异常分类: 可查异常,运行时异常和错误3种其中,运行时异常和错误又叫非可查异常 步骤 1 ...

  • JAVA 中的异常分类

    在java 中 ,异常对象都是派生于Throwable类的一个实例。 如下图: 2 Error 类层次结构描述了J...

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

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

  • java小白翻身-异常处理02: 常见异常

    归纳一些Java开发中常见的一些异常。 步骤 1 异常的继承图谱 步骤 2 java中异常分类 Throwab...

网友评论

      本文标题:详解Java中异常的分类

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