java中常见的异常类

java中常见的异常类,第1张

异常类的继承架构图中可以看出:Exception 类扩展出数个子类,其中 IOException、RunntimeException 是较常用的两种。

习惯上将 Error 与 Exception 类统称为异常类,但这两者本质上还是有不同的。Error 类专门用来处理严重影响程序运行的错误,可是通常程序设计者不会设计程序代码去捕捉这种错误,其原因在于即使捕捉到它,也无法给予适当的处理,如 JAVA 虚拟机出错就属于一种 Error。

不同于 Error 类,Exception 类包含了一般性的异常,这些异常通常在捕捉到之后便可做妥善的处理,以确保程序继续运行,如 TestException7_2 里所捕捉到的 ArrayIndexOutOfBoundsException 就是属于这种异常。

RunntimeException 即使不编写异常处理的程序代码,依然可以编译成功,而这种异常必须是在程序运行时才有可能发生,例如:数组的索引值超出了范围。

与RunntimeException 不同的是,IOException 一定要编写异常处理的程序代码才行,它通常用来处理与输入/输出相关的 *** 作,如文件的访问、网络的连接等。

当异常发生时,发生异常的语句代码会抛出一个异常类的实例化对象,之后此对象与 catch 语句中的类的类型进行匹配,然后在相应的 catch 中进行处理。

扩展资料:

Java异常的分类:

Java标准裤内建了一些通用的异常,这些类以Throwable为顶层父类。

Throwable又派生出Error类和Exception类。

错误:Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。因此,程序员应该关注Exception为父类的分支下的各种异常类。

异常:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。

参考资料:百度百科-异常

程序出了那种异常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就会来捕捉


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11535147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存