目录

前言

一、throw 关键字

二、throws 关键字

总结


前言

在 Java 编程中,异常处理是非常重要的一环,它不仅能够保护程序运行的稳定性,还能够提高代码的可读性和易维护性。Java 中抛出异常的语句有两种,分别是 throw 和 throws,本文将详细介绍这两个关键字的使用方法及其区别。


一、throw 关键字

在 Java 中,当程序发生异常时,可以使用 throw 关键字来抛出异常对象。throw 语句的格式为:

throw new 异常类名称(构造函数参数);

其中,异常类名称就是已定义的异常类,构造函数参数是为异常类的构造函数提供的参数。它可以为代码中的某个条件设置一个异常,并在需要的位置进行捕获和处理。

示例代码:

下面是一个简单的示例,演示当传入的参数小于 0 时,抛出 IllegalArgumentException 异常对象。

public static int divide(int numerator, int denominator) {
    if (denominator <= 0) {
        throw new IllegalArgumentException("除数必须大于 0");
    }
    return numerator / denominator;
}

二、throws 关键字

Java 中的 throws 关键字用于声明可能会抛出哪些异常,它只是在方法签名中声明了方法可能抛出的异常,而并未实际抛出异常。throws 语句的格式为:

修饰符 返回类型 方法名(参数列表) throws 异常列表 {
    // 方法体
}

在方法名后面添加 throws + 异常列表,可以说明该方法有可能会抛出哪些异常。如果不添加 throws,那么这个方法抛出的异常只能被方法内部的 catch 语句所处理。

示例代码:

下面是一个示例,演示使用 throws 关键字来声明方法可能抛出的异常。

public void readFile(String filename) throws FileNotFoundException {
    File file = new File(filename);
    FileInputStream stream = new FileInputStream(file);
    // ...
}

在上面的代码中,FileInputStream 的构造方法可能会抛出 FileNotFoundException 异常,因此在方法签名中使用了 throws + 异常列表来声明这种可能性。


总结

throw 和 throws 都是 Java 中用于异常处理的关键字,它们的作用不同。throw 用于抛出异常对象,主要用于在代码中手动抛出异常。throws 用于声明方法可能会抛出哪些异常,在方法调用栈中往上层抛出异常,依赖于调用该方法的上层代码去处理。

在实际的编程中,我们需要根据具体情况来使用 throw 和 throws,保证程序可读性和健壮性。当我们自定义异常时,可以通过继承 Exception 类或者 RuntimeException 类来实现。另外,可以通过 try-catch-finally 语句组合来实现异常的捕获处理,使用方式和异常处理方式请根据实际代码及需求灵活选择。

public class Test {
    public static void main(String[] args) {
        try {
            int result = divide(4, 0);
            System.out.println(result);
        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
    }

    public static int divide(int numerator, int denominator) throws ArithmeticException {
        if (denominator == 0) {
            throw new ArithmeticException("除数不能为 0");
        }
        return numerator / denominator;
    }
}

以上就是 throw 和 throws 关键字的详细介绍,相信你已经了解它们的作用和方式,可以在实际编程中灵活运用。

如果觉得对你有帮助的话,可以点赞+关注,避免下次找不到了~

05-04 04:03