Java 中常见的异常类有哪些?

在Java编程中,异常处理是至关重要的一部分,它允许程序在遇到错误时以一种有序和可控的方式进行处理。Java中异常是以类的形式存在的,异常类分为两种:Checked Exception(受检异常)和Unchecked Exception(非受检异常,也称运行时异常)。

一、Checked Exception(受检异常)

Checked Exception是指在编译时必须处理的异常,即在代码中必须使用try-catch块或者throws关键字进行处理,否则编译器会报错。常见的Checked Exception包括:

IOException(输入输出异常):当输入输出操作发生异常时抛出,常见于文件操作、网络操作等。

try {
    FileReader fileReader = new FileReader("file.txt");
    // 执行文件读取操作
} catch (IOException e) {
    e.printStackTrace();
}

SQLException(SQL数据库操作异常):当执行SQL语句时发生异常抛出,常见于数据库操作。

try {
    Statement statement = connection.createStatement();
    ResultSet resultSet = statement.executeQuery("SELECT * FROM table");
    // 处理查询结果
} catch (SQLException e) {
    e.printStackTrace();
}

ClassNotFoundException(类未找到异常):当试图加载不存在的类时抛出。

try {
    Class.forName("com.example.NonExistingClass");
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}

InterruptedException(线程中断异常):当线程在等待、睡眠或等待锁的过程中被中断时抛出。

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    e.printStackTrace();
}

二、Unchecked Exception(非受检异常,运行时异常)

Unchecked Exception是指在运行时可能抛出的异常,编译器不要求显式地捕获或者声明。通常情况下,Unchecked Exception表示程序出现了逻辑错误或者其他不可恢复的错误。常见的Unchecked Exception包括:

NullPointerException(空指针异常):当应用程序试图在空对象上调用方法或访问属性时抛出。

String str = null;
int length = str.length(); // 抛出NullPointerException

ArrayIndexOutOfBoundsException(数组下标越界异常):当访问数组时使用了非法的索引值时抛出。

int[] array = {1, 2, 3};
int value = array[3]; // 抛出ArrayIndexOutOfBoundsException

ClassCastException(类型转换异常):当试图将一个对象强制转换为不兼容的类型时抛出。

Object obj = "Hello";
Integer num = (Integer) obj; // 抛出ClassCastException

NumberFormatException(数字格式异常):当试图将一个字符串转换为数值类型,但该字符串格式不合法时抛出。

String str = "abc";
int value = Integer.parseInt(str); // 抛出NumberFormatException

ArithmeticException(算术异常):当试图进行数学运算,但出现了异常情况,例如除零操作时抛出。

int result = 10 / 0; // 抛出ArithmeticException

三、其他常见异常类

除了上述列举的异常类外,Java还有一些其他常见的异常类,包括但不限于:

FileNotFoundException(文件未找到异常):当试图访问一个不存在的文件时抛出。

try {
    FileReader fileReader = new FileReader("non_existing_file.txt");
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

SecurityException(安全异常):当安全限制被违反时抛出。

try {
    SecurityManager sm = System.getSecurityManager();
    if (sm != null) {
        sm.checkWrite("file.txt");
    }
} catch (SecurityException e) {
    e.printStackTrace();
}

IllegalArgumentException(非法参数异常):当方法接收到一个不合法的参数时抛出。

public void setValue(int value) {
    if (value < 0) {
        throw new IllegalArgumentException("Value must be non-negative");
    }
    this.value = value;
}

IllegalStateException(非法状态异常):当对象处于不合法的状态时抛出。

public void start() {
    if (isRunning) {
        throw new IllegalStateException("Already started");
    }
    // 执行启动操作
    isRunning = true;
}

异常处理在Java编程中是至关重要的一部分,它允许程序在面临错误时进行适当的处理,以保证程序的稳定性和可靠性。了解和熟悉Java中常见的异常类,以及它们的分类、用途和示例,对于编写健壮的Java应用程序至关重要。同时,良好的异常处理实践也应包括适当的日志记录、错误消息提示等,以便于调试和维护。

黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算法题和大厂java面试题)

黑马程序员Java零基础视频教程_下部(Java入门,含斯坦福大学练习题+力扣算法题和大厂java面试题)

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值