java异常处理机制(三)常见异常

前言

本文本来是只介绍常见异常的,因为某种原因,要介绍什么是异常还有异常的处理以及常见的异常。

什么是异常

在Java中,异常(Exception)是指程序执行过程中可能出现的不正常情况或错误。它是一个事件,它会干扰程序的正常执行流程,并可能导致程序出现错误或崩溃。

常见的异常

Java常见的异常包括但不限于以下几种:

异常类型描述
NullPointerException(空指针异常)当试图调用实例方法或访问实例变量时,对象引用为 null 时抛出。
ArrayIndexOutOfBoundsException(数组越界异常)当访问数组中不存在的元素时抛出。
ClassCastException(类转换异常)当试图将对象强制转换为不是其子类的类型时抛出。
ArithmeticException(算术异常)当试图做出违反算术规则的操作时抛出,比如除以零。
IllegalArgumentException(非法参数异常)当传递给方法的参数不正确或不符合预期时抛出。
IllegalStateException(非法状态异常)当对象处于非法、不一致的状态时抛出。
IOException(输入输出异常)当任何输入输出操作失败或中断时抛出。
NoSuchMethodException(无此方法异常)当试图调用不存在的方法时抛出。
SecurityException(安全异常)当安全管理器禁止操作时抛出。
InterruptedException(线程中断异常)当线程被中断时抛出。

我挑几个,进行代码演示,上面表格都有报了什么错的解释~

算术异常 (ArithmeticException)

当试图做出违反算术规则的操作时抛出,比如除以零。

public class Demo {
	public static void main(String[] args){
		System.out.println(2/0);
	}
}

结果:
在这里插入图片描述

数组越界异常(ArrayIndexOutOfBoundsException)

当访问数组中不存在的元素时抛出。

public class Demo {
    public static void main(String[] args) {
        int [] list = new int[]{1,2,3};
        System.out.println(list[3]);
    }
}

结果:
在这里插入图片描述

空指针异常(NullPointerException)

当试图调用实例方法或访问实例变量时,对象引用为 null 时抛出。

public class Demo {
    public static void main(String[] args) {
        String temp = null;
        System.out.println(temp.length());
    }
}

结果:
在这里插入图片描述
以上都是常见的异常,还有很多可以去官网看看

异常的处理

异常捕获指在程序运行过程中,发生了一些不可预测的错误或异常,需要对这些错误或异常进行捕获和处理的过程。在编程中,我们可以使用 try-catch-finally 语句块来进行异常捕获。

  • try:将可能会出错的代码放入 try 块中。
  • catch:当 try 块中的代码出现异常时,程序会跳转到 catch
    块去处理异常,防止程序崩溃。
  • finally:不管 try 块中的代码是否正常执行,finally
    块中的代码都会被执行,通常用来释放资源。

以下是一个简单的异常处理和捕获的例子:

try {
    // 可能会抛出异常的代码块
} catch (ExceptionType1 e1) {
    // 处理特定类型的异常1
} catch (ExceptionType2 e2) {
    // 处理特定类型的异常2
} finally {
    // 必须执行的代码块
}

在上面的代码中,try块中的代码可能会抛出异常。如果抛出了ExceptionType1类型的异常,将跳转到第一个catch块中处理它。如果抛出了ExceptionType2类型的异常,将跳转到第二个catch块中处理它。无论是否出现异常,finally块中的代码都将执行。

需要注意的是,在Java中,异常处理应该尽可能地处理所有可能的异常,并且应该总是使用try-catch-finally块,即使代码中出现了Unchecked Exception。这样可以确保程序的稳定性和可靠性。

总结

Java常见的异常包括但不限于以下几种:

异常类型描述
NullPointerException(空指针异常)当试图调用实例方法或访问实例变量时,对象引用为 null 时抛出。
ArrayIndexOutOfBoundsException(数组越界异常)当访问数组中不存在的元素时抛出。
ClassCastException(类转换异常)当试图将对象强制转换为不是其子类的类型时抛出。
ArithmeticException(算术异常)当试图做出违反算术规则的操作时抛出,比如除以零。
IllegalArgumentException(非法参数异常)当传递给方法的参数不正确或不符合预期时抛出。
IllegalStateException(非法状态异常)当对象处于非法、不一致的状态时抛出。
IOException(输入输出异常)当任何输入输出操作失败或中断时抛出。
NoSuchMethodException(无此方法异常)当试图调用不存在的方法时抛出。
SecurityException(安全异常)当安全管理器禁止操作时抛出。
InterruptedException(线程中断异常)当线程被中断时抛出。

以上都是常见的异常,还有很多可以去官网看看

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值