【Java 常用类】java.lang包(1)异常总结




前言

这篇文章主要讲讲异常,异常并不是不好的,反而异常可以给我们一些提示信息,帮助到我们。

如果对运行时异常(RuntimeException)不太了解,推荐先查看我这篇文章:【Java 基础】异常与处理

异常也是一个类,我下面会将java.lang包下的常见的 运行时异常(RuntimeException)做个总结。并且会给出造成运行时异常的示例代码。以此避免以后我们写代码时不会写出容易造成运行时异常的代码,也为了出现异常时更从容一些。


一、异常类

1.算数异常(ArithmeticException)

当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例。

运算条件异常时,会抛出该异常。

触发代码:用任何数除0,抛异常

    public static void main(String[] args) {
        int zore = 0;
        int divide = 1 / zore;
    }

2.数组存储异常(ArrayStoreException)

试图将错误类型的对象存储到一个对象数组时抛出的异常。

数组值存储时,类型不匹配时会抛出该异常。

触发代码:数字数字中存入字符串,抛异常

    public static void main(String[] args) {
        Object[] arr = new Integer[2];
        arr[0] = "str";
    }

3.类转换异常(ClassCastException)

当试图将对象强制转换为不是实例的子类时,抛出该异常。

当类强制转换时,该类型无法转换成别的类型时会抛出该异常。

触发代码:数字强制转换成字符串,抛异常

    public static void main(String[] args) {
        Object num = new Integer(123);
        String num1 = (String) num;
    }

4.非法参数异常(IllegalArgumentException)

抛出的异常表明向方法传递了一个不合法或不正确的参数。

抛出非法参数异常,参数不是预期的参数

触发代码:参数不正确

    public static void main(String[] args) {
        new SimpleDateFormat("abc");
    }

触发代码:
下面抛出非法参数异常(IllegalArgumentException)的子类, 数字格式异常(NumberFormatException)


    public static void main(String[] args) {
        Integer num = new Integer("abc");
    }

5.下标越界异常(IndexOutOfBoundsException)

指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。

最常见的就是他的子类,数组下标越界异常(ArrayIndexOutOfBoundsException)。

  • 他的子类:
    数组下标越界异常(ArrayIndexOutOfBoundsException)

触发代码:数字下标不正确

    public static void main(String[] args) {
        int[] arr = new int[2];
        arr[-1] = 0;
    }
  • 他的子类:字符串下标越界异常(StringIndexOutOfBoundsException)

触发代码:传入的下标不正确

    public static void main(String[] args) {
        String s = "abc";
        s.substring(-1);
    }

6.负数组大小异常(NegativeArraySizeException)

如果应用程序试图创建大小为负的数组,则抛出该异常。

触发该异常的代码:创建数组是指定的大小为负数

    public static void main(String[] args) {
        int[] arr = new int[-1];
    }

7.空指针异常(NullPointerException)

当应用程序试图在需要对象的地方使用 null 时,抛出该异常。

这个非常常见,你用空对象(null)调用它方法时就会出现。

触发该异常的代码:空字符串对象调用方法。

    public static void main(String[] args) {
        String s = null;
        s.length();
    }

最后

以上就是java.lang包下我们最常见的异常,你肯定遇到过。

希望看到此篇文章的你,了解这些异常后可以做到触类旁通。因为以后我们会遇到更多的异常,这些异常都非常有用,可以告诉我们一些有用的信息。


相关

更多常用类请查看:【Java SE 常用类】目录

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值