抛出异常与自定义异常
学习显式抛出异常,并定义自定义异常类。
抛出异常与自定义异常 是 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 反馈 — 无需本地设置。
此课程中的所有课时
- 抛出异常与自定义异常
- try-with-resources(AutoCloseable)
- 防御式编程