Menu
CoddyTech

抛出异常

本课属于 Coddy Java 学习旅程的“逻辑与流程”单元。第 42 课,共 59 课。

Java 中的 throw 关键字可以让你显式地抛出异常。基本结构如下:

throw new ExceptionType("Error message");

各部分如下:

  • throw:用于抛出异常的关键字
  • new ExceptionType:创建一个新的异常(例如 IllegalArgumentException)
  • "Error message":描述出了什么问题

我们来看看它的实际效果:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

执行上述代码后,程序会抛出:

IllegalArgumentException: Age cannot be negative

challenge icon

挑战

简单

创建一个名为 validateAge 的方法,它接受两个参数:

  1. 要验证的整数(age)
  2. 用于决定验证规则的布尔值(strict)

该方法应根据以下规则抛出异常:

  • 如果 age 是负数:抛出 IllegalArgumentException,错误消息为 "Age cannot be negative"
  • 如果 age 大于 150:抛出 IllegalArgumentException,错误消息为 "Age cannot be greater than 150"
  • 如果 strict 为 true 且 age 为 0:抛出 IllegalArgumentException,错误消息为 "Age cannot be zero in strict mode"
  • 如果没有抛出异常:将 age 作为字符串返回

亲手试试

import java.util.Scanner;

public class Main {
    public static String validateAge(int age, boolean strict) {
        // 在这里编写你的代码
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int age = Integer.parseInt(scanner.nextLine());
        boolean strict = Boolean.parseBoolean(scanner.nextLine());
        
        try {
            System.out.println(validateAge(age, strict));
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Java 在线编译器