JAVA标准异常分两大类_java异常分类

Java中异常的分类

所有异常,都继承自java.lang.Throwable类。

Throwable有两个直接子类,Error类和Exception类。

Exception

Exception则可使从任何标准Java库的类方法,自己的方法以及运行时任何异常中抛出来的基类型。

异常可分为执行异常(RuntimeException)和检查异常(Checked Exceptions)两种

RuntimeException

RuntimeException在默认情况下会得到自动处理。所以通常用不着捕获RuntimeException,但在自己的封装里,也许仍然要选择抛出一部分RuntimeException。

RuntimeException是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的RuntimeException的任何子类都无需在throws子句中进行声明。(java api)

它是uncheckedExcepiton。

Java.lang.ArithmeticException

Java.lang.ArrayStoreExcetpion

Java.lang.ClassCastException

Java.lang.EnumConstantNotPresentException

Java.lang.IllegalArgumentException

Java.lang.IllegalThreadStateException

Java.lang.NumberFormatException

Java.lang.IllegalMonitorStateException

Java.lang.IllegalStateException

Java.lang.IndexOutOfBoundsException

Java.lang.ArrayIndexOutOfBoundsException

Java.lang.StringIndexOutOfBoundsException

Java.lang.NegativeArraySizeException’

Java.lang.NullPointerException

Java.lang.SecurityException

Java.lang.TypeNotPresentException

Java.lang.UnsupprotedOperationException

CheckedException

除了runtimeException以外的异常,都属于checkedException,它们都在java.lang库内部定义。Java编译器要求程序必须捕获或声明抛出这种异常。

一个方法必须通过throws语句在方法的声明部分说明它可能抛出但并未捕获的所有checkedException。

Java.lang.ClassNotFoundException

Java.lang.CloneNotSupportedException

Java.lang.IllegalAccessException

Java.lang.InterruptedException

Java.lang.NoSuchFieldException

Java.lang.NoSuchMetodException

Error

当程序发生不可控这种错误时,通常的做法是通知用户并中止程序的执行。

与异常不同的是Error及其子类的对象不应被抛出。

Error 是 Throwable 的子类,代表编译时间和系统错误,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然 ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。

在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error 的任何子类,因为这些错误可能是再也不会发生的异常条件。

它是uncheckedExcepiton。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的异常分为两大类:Checked异常和Unchecked异常(也称为Runtime异常)。 1. Checked异常:这些异常在编译时必须被捕获或声明。它们通常表示程序的预期错误,例如文件不存在或网络连接中断等。常见的Checked异常包括IOException、ClassNotFoundException和SQLException等。对于Checked异常,程序员应该在代码中使用try-catch语句进行捕获处理,或者在方法签名中使用throws关键字声明该异常,让调用方去处理。 2. Unchecked异常:这些异常在编译时不需要被捕获或声明。它们通常表示程序的错误或逻辑错误,例如数组下标越界、空指针引用等。常见的Unchecked异常包括NullPointerException、ArrayIndexOutOfBoundsException和ArithmeticException等。对于Unchecked异常,程序员应该尽可能地避免它们的出现,比如在使用对象引用之前进行null判断等。 处理不同类别异常的方法也不同。对于Checked异常,程序员应该使用try-catch语句进行捕获处理,或在方法签名中声明该异常,让调用方去处理。例如: ``` try { // 可能抛出Checked异常的代码 } catch(IOException e) { // 处理IOException异常 } ``` 或者: ``` public void myMethod() throws IOException { // 可能抛出IOException异常的代码 } ``` 对于Unchecked异常,程序员通常使用try-catch语句进行捕获处理,或在程序中进行必要的防御性编程,避免这些异常的出现。例如: ``` try { // 可能抛出Unchecked异常的代码 } catch(NullPointerException e) { // 处理NullPointerException异常 } catch(ArrayIndexOutOfBoundsException e) { // 处理ArrayIndexOutOfBoundsException异常 } ``` 或者: ``` if (myObj != null) { // 使用myObj对象引用进行操作 } else { // 对myObj为空的情况进行处理 } ``` 总之,处理异常Java编程中一个非常重要的方面,程序员需要根据不同的异常类型和处理场景,选择合适的异常处理方法,使程序更加健壮和可靠。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值