java - 异常正在停止程序 - 如何防止它
问题描述
我有以下方法:
void checkAge() {
if (age < 18) {
throw new ArithmeticException("Access denied - You must be at least 18 years old.");
}
else {
System.out.println("Access granted - You are old enough!");
}
}
如果年龄小于 18 岁,我如何防止停止我的程序?
解决方案
虽然最初的直觉很好,但这不是 Exceptions 的用途。异常通常用于指示 VM 中发生的错误,通常不应用于创建逻辑流。
最简单的方法是将您的函数转换为布尔函数
boolean checkAge() {
if (age < 18) {
return false;
}
else {
return true;
}
}
然后可以在您的main
功能中使用它
public static void main(String[] args) {
int age = 20;
if(checkAge(age)){
System.out.println("Access granted - You are old enough!");
} else {
System.out.println("Access denied - You must be at least 18 years old.");
}
}
显然,您想要显示它的方式(System.out,一个消息框)取决于您。
在这种情况下应该注意的另一件事是,该函数有点过于简单,无法抽象为代码的整个单独部分,您应该直接在主函数中进行比较,如下所示:
public static void main(String[] args) {
int age = 20;
if(age >= 18){
System.out.println("Access granted - You are old enough!");
} else {
System.out.println("Access denied - You must be at least 18 years old.");
}
}
推荐阅读
- scala - Scala ,带有值列表的 Dataframe 列,我想将每个值创建为新列并想命名它
- node.js - Twilio statusCallback 实现遇到麻烦
- zebra-printers - Zebra ZT410 ZPL 清除缓冲区命令
- python - 如何使复杂的 if 条件可维护,因为 Python 不支持 if 条件中的赋值?
- vba - 使用 VBA 在 CATIA 中分解曲面
- c# - 锁定一个客户端的 Web 服务方法
- java - IOException:关闭文件流时权限被拒绝
- linux - 将 bash 脚本输出重定向到 syslog 后未打印提示
- php - 致命错误:PHP 中未捕获的 Braintree 异常
- ios - 通过呈现控制器创建导航抽屉?