Java中请写出最常见的10个RuntimeException

在Java中,RuntimeException是所有未检查异常(Unchecked Exception)的基类,未检查异常不需要显式地捕获或声明在方法签名中。以下是10个最常见的RuntimeException子类:

  1. NullPointerException

    • 当应用程序试图在需要对象的地方使用null时,抛出该异常。
    • 例如,调用一个空对象的方法,访问空对象的字段等。
    String str = null;
    str.length(); // 抛出 NullPointerException
    
  2. ArrayIndexOutOfBoundsException

    • 当试图用非法索引访问数组时,抛出该异常。索引是负数或大于等于数组的大小。
    int[] array = new int[5];
    int value = array[5]; // 抛出 ArrayIndexOutOfBoundsException
    
  3. ArithmeticException

    • 当出现算术错误时,抛出该异常。例如,除以零。
    int result = 10 / 0; // 抛出 ArithmeticException
    
  4. ClassCastException

    • 当试图将对象强制转换为不是实例的子类时,抛出该异常。
    Object x = new Integer(0);
    String s = (String) x; // 抛出 ClassCastException
    
  5. IllegalArgumentException

    • 当向方法传递了非法或不适当的参数时,抛出该异常。
    Thread.sleep(-1); // 抛出 IllegalArgumentException
    
  6. NumberFormatException

    • 当试图将字符串解析为数字,但字符串不包含可解析的格式时,抛出该异常。NumberFormatExceptionIllegalArgumentException的子类。
    int num = Integer.parseInt("abc"); // 抛出 NumberFormatException
    
  7. IndexOutOfBoundsException

    • 当索引值超出某个序列的边界时(例如列表、字符串或数组),抛出该异常。它有几个子类,如ArrayIndexOutOfBoundsExceptionStringIndexOutOfBoundsException
    String str = "hello";
    char ch = str.charAt(5); // 抛出 StringIndexOutOfBoundsException
    
  8. UnsupportedOperationException

    • 当试图执行不支持的操作时,抛出该异常。通常在集合框架中,当某个操作不被实现时会抛出。
    List<String> list = Arrays.asList("a", "b", "c");
    list.add("d"); // 抛出 UnsupportedOperationException
    
  9. IllegalStateException

    • 当方法被调用的时机不对或环境不合适时,抛出该异常。
    Iterator<String> iterator = new ArrayList<String>().iterator();
    iterator.remove(); // 抛出 IllegalStateException
    
  10. ConcurrentModificationException

    • 当检测到对象被并发修改,但不允许这种修改时,抛出该异常。通常在迭代集合时,如果在迭代过程中对集合进行了修改,会抛出该异常。
List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
for (String s : list) {
    if (s.equals("a")) {
        list.remove(s); // 抛出 ConcurrentModificationException
    }
}

了解这些常见的RuntimeException及其发生的情境,可以帮助开发者编写更健壮和容错的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟主教

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值