java中的异常继承体系及常见运行时异常

        在Java中,异常是一种用于处理程序运行过程中错误的机制。Java 异常分为两类:Checked Exception 和 Unchecked Exception。其中,Checked Exception需要在方法的声明中明确地抛出并处理,而Unchecked Exception则不需要明确地抛出和处理,它们的处理交给JVM来完成。

  Java中的异常继承体系如下所示:

Throwable
    |-- Error
    |   |-- AssertionError
    |   |-- OutOfMemoryError
    |   |-- StackOverflowError
    |   |-- ...
    |
    |-- Exception
        |-- RuntimeException
        |   |-- NullPointerException
        |   |-- IllegalArgumentException
        |   |-- IndexOutOfBoundsException
        |   |-- ArithmeticException
        |   |-- ...
        |
        |-- Checked Exception
            |-- IOException
            |-- SQLException
            |-- ...

  常见的运行时异常有:NullPointerException、IllegalArgumentException、IndexOutOfBoundsException、ArithmeticException等。

public class ExceptionDemo {
    public static void main(String[] args) {
        // NullPointerException
        String str = null;
        System.out.println(str.length());
        
        // IllegalArgumentException
        int age = -1;
        if (age < 0) {
            throw new IllegalArgumentException("Age cannot be negative.");
        }
        
        // IndexOutOfBoundsException
        int[] arr = {1, 2, 3};
        System.out.println(arr[3]);
        
        // ArithmeticException
        int a = 10, b = 0;
        int c = a / b;
    }
}

  接下来,我们通过一段代码来加以说明:

  上面的代码会依次抛出上述四种运行时异常。需要注意的是,如果这些异常没有被捕获并处理,程序将会中止。因此,我们需要在代码中添加必要的异常处理机制来保证程序的稳定性和健壮性。

  好的,除了上述常见的运行时异常之外,Java中还有一些其他的运行时异常,比如:

  1.ClassCastException

  类型转换异常,通常在将一个对象转换成另一个不兼容的类型时抛出。

  2.ArrayStoreException

  数组存储异常,通常在试图将一个不兼容类型的对象存储到数组中时抛出。

  3.NumberFormatException

  数字格式异常,通常在将一个非数字字符串转换成数字时抛出。

  4.UnsupportedOperationException

  不支持操作异常,通常在试图对不支持的操作进行调用时抛出。

  下面是一个包含上述异常的代码演示:

public class MoreExceptionDemo {
    public static void main(String[] args) {
        // ClassCastException
        Object obj = "Hello";
        Integer num = (Integer) obj;
        
        // ArrayStoreException
        Object[] arr = new String[3];
        arr[0] = 10;
        
        // NumberFormatException
        String str = "abc";
        int n = Integer.parseInt(str);
        
        // UnsupportedOperationException
        List<String> list = Arrays.asList("apple", "banana", "orange");
        list.add("grape");
    }
}

  上述代码会依次抛出上述四种运行时异常。需要注意的是,运行时异常通常由程序员自己的错误导致,因此在编写代码时要注意类型转换、数组操作、数字格式等问题,避免引发异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值