0Pricing
Java Academy · 课时

抛出异常与自定义异常

学习显式抛出异常,并定义自定义异常类。

抛出异常与自定义异常 是 CoddyKit 上的免费 Java Academy 课时。 这是第 1 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 3 节课。

简介

有时您需要自行发出错误信号。Java 允许您显式抛出异常,甚至创建自定义类型。

抛出关键字

抛出语句会创建并发送异常。请在方法中使用它来表示发生了问题。

代码:抛出内置异常

这里会在年龄过小时抛出 IllegalArgumentException。

public class Main {
  static void checkAge(int age) {
    if (age < 18) {
      throw new IllegalArgumentException("Must be 18 or older");
    }
    System.out.println("Access granted");
  }
  public static void main(String[] args) {
    try {
      checkAge(15);
    } catch (IllegalArgumentException e) {
      System.out.println("Caught: " + e.getMessage());
    }
  }
}

自定义异常

您可以创建自己的自定义异常。对于受检异常,请继承 Exception;对于非受检异常,请继承 RuntimeException。

代码:自定义异常

这里展示了一个自定义受检异常。方法必须使用 throws 声明它。

public class Main {
  // Custom checked exception
  static class InvalidAgeException extends Exception {
    InvalidAgeException(String msg) { super(msg); }
  }
  static void validate(int age) throws InvalidAgeException {
    if (age < 18) throw new InvalidAgeException("Too young!");
  }
  public static void main(String[] args) {
    try {
      validate(15);
    } catch (InvalidAgeException e) {
      System.out.println("Caught custom: " + e.getMessage());
    }
  }
}

代码:自定义运行时异常

自定义运行时异常继承 RuntimeException。您不需要声明它们。

public class Main {
  // Custom unchecked exception
  static class FatalError extends RuntimeException {
    FatalError(String msg) { super(msg); }
  }
  public static void main(String[] args) {
    try {
      throw new FatalError("Something bad happened");
    } catch (FatalError e) {
      System.out.println("Caught runtime: " + e.getMessage());
    }
  }
}

自定义异常检查

快速检查:如何定义自定义受检异常?

回顾

回顾:使用抛出语句发出错误信号。自定义受检异常继承 Exception,非受检异常继承 RuntimeException。

常见问题解答

「抛出异常与自定义异常」课时是免费的吗?

是的 — 「抛出异常与自定义异常」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 3 节课。

「抛出异常与自定义异常」这节课中我会学到什么?

学习显式抛出异常,并定义自定义异常类。 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Java Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 3 节。

「抛出异常与自定义异常」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Java Academy 课中编写并运行代码吗?

能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 抛出异常与自定义异常
  2. try-with-resources(AutoCloseable)
  3. 防御式编程
← 返回 Java Academy