如何在Java中使用throw抛出异常

throw用于手动抛出异常对象,语法为throw new 异常类("信息"); 常用于参数验证,如负数平方根抛IllegalArgumentException;throw是抛出动作,throws是声明可能抛出的异常类型;可结合自定义异常类使用,需注意选择合适异常类型并提供清晰提示。

在Java中,throw 关键字用于手动抛出一个异常对象。它通常用在方法内部,当你检测到某种错误条件时,可以主动抛出异常,通知调用者出现了问题。

1. throw的基本语法

使用 throw 抛出异常的语法非常简单:

throw new 异常类("异常信息");

例如,抛出一个 IllegalArgumentException:

throw new IllegalArgumentException("参数不合法");

2. 常见的使用场景

在方法中验证参数或状态时,如果不符合预期,就可以使用 throw 主动抛出异常。

比如,编写一个计算平方根的方法,要求传入的数值不能为负:

if (x     throw new IllegalArgumentException("不能计算负数的平方根");
}

这样调用者如果传入负数,会立即收到明确的错误提示。

3. throw 和 throws 的区别

throw 是实际抛出异常的动作,而 throws 是声明方法可能抛出哪些异常,供调用者处理。

例如:

public void readFile(String file) throws IOException {
    if (file == null) {
        throw new IllegalArgumentException("文件名不能为null");
    }
    // 可能抛出 IOException
    // ...
}

这里 throw 抛出的是运行时异常,不需要强制捕获;而 throws 声明了受检异常 IOException,调用者必须处理。

4. 自定义异常中的使用

你也可以创建自己的异常类,并在逻辑中抛出:

public class MyException extends Exception {
    public MyException(String message) {
        super(message);
    }
}

// 使用自定义异常
if (errorCondition) {
    throw new MyException("自定义错误发生");
}

基本上就这些。只要记住:检测到异常情况时,new 一个异常对象,然后用 throw 抛出去就行。关键是选择合适的异常类型,并提供清晰的错误信息。不复杂但容易忽略细节。