一个练习 Java 的异常处理机制(try-catch 和 throw)的例子
·
异常处理练习:
给类的属性身份证号码id设置值,当给定的值长度为18时,赋值给id,当值长度不为18时,抛出IllegalArgumentException异常,然后捕获和处理异常。请编写程序。
ans:
为了实现这个功能,我们需要定义一个 id 属性,添加一个设置 id 的方法(通常叫 setId),并在其中进行长度判断。
public class Test {
private String id;
// 自定义异常类,记得加上 static
static class IllegalArgumentException extends Exception {
public IllegalArgumentException(String message) {
super(message);
}
}
// 设置 id 的方法
public void setId(String id) throws IllegalArgumentException {
if (id != null && id.length() == 18) {
this.id = id;
System.out.println("身份证号码设置成功: " + id);
} else {
// 抛出异常
throw new IllegalArgumentException("身份证号码长度必须为 18 位!");
}
}
public static void main(String[] args) {
Test t = new Test();
// 捕获和处理异常
try {
t.setId("123456789012345678"); // 正确的情况
t.setId("123"); // 错误的情况,会触发异常
} catch (IllegalArgumentException e) {
System.err.println("捕获到异常: " + e.getMessage());
}
}
}
运行结果:
身份证号码设置成功: 123456789012345678
捕获到异常: 身份证号码长度必须为 18 位!
代码要点提示:
throw与throws:在setId方法声明时使用throws表示该方法可能会抛出异常;在方法内部使用throw关键字手动触发异常。try-catch块:在调用可能抛出异常的方法时,必须使用try-catch将其包围,这样程序才不会在遇到非法输入时直接崩溃。System.err:这会以红色文字(在大多数终端中)打印错误信息,非常适合用来标注异常情况。
更多推荐


所有评论(0)