java中抛出异常的用法
时间: 2025-07-24 20:58:05 AIGC 浏览: 18
### Java 中 `throw` 和 `throws` 的用法及语法示例
#### 1. `throw` 关键字
`throw` 用于在代码块中显式地抛出异常。它允许开发者主动创建一个异常对象并将其抛出,通常用于验证参数或业务逻辑的正确性。
```java
if (age < 0) {
throw new IllegalArgumentException("年龄不能为负数"); // 抛出异常
}
```
- `throw` 后面必须是一个异常对象(即继承自 `Throwable` 的类实例)[^2]。
- 使用场景:当需要在运行时检测到错误条件并立即停止当前方法的执行时,可以使用 `throw`。
#### 2. `throws` 关键字
`throws` 用于声明方法可能抛出的异常类型。它告诉调用者该方法可能会抛出某些异常,调用者需要处理这些异常或继续向上抛出。
```java
public void readFile(String filePath) throws FileNotFoundException {
FileReader fileReader = new FileReader(filePath); // 可能抛出 FileNotFoundException
}
```
- 方法声明中的 `throws` 列表可以包含多个异常类型,用逗号分隔[^3]。
- 使用场景:当方法内部无法处理某些异常时,可以通过 `throws` 将其传递给调用方。
#### 3. 综合示例
以下是一个结合 `throw` 和 `throws` 的完整示例,展示了如何在方法中使用它们:
```java
// 自定义异常类
class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
// 使用 throws 声明方法可能抛出的异常
public void validateNumber(int number) throws CustomException {
if (number < 0) {
// 使用 throw 主动抛出异常
throw new CustomException("数字不能为负数");
}
}
public static void main(String[] args) {
try {
validateNumber(-5); // 调用可能抛出异常的方法
} catch (CustomException e) {
System.out.println("捕获到异常: " + e.getMessage());
}
}
```
#### 4. 注意事项
- 检查型异常(Checked Exception)必须在方法声明中使用 `throws` 显式声明或在调用处使用 `try-catch` 处理[^4]。
- 运行时异常(Unchecked Exception)不需要声明 `throws`,但可以通过 `throw` 手动抛出。
###
阅读全文
相关推荐



















