
本文详解如何在 Java CLI 程序中安全、规范地校验传入参数数量,重点纠正 args[].length 等常见语法错误,并强调「先校验后访问」的健壮编程实践。
本文详解如何在 java cli 程序中安全、规范地校验传入参数数量,重点纠正 `args[].length` 等常见语法错误,并强调「先校验后访问」的健壮编程实践。
在 Java 命令行(CLI)程序中,main(String[] args) 方法接收的 args 是一个字符串数组(String[]),其长度通过 args.length 获取——注意:args[].length 是非法语法,因为 args[] 并非有效变量名,而 args 才是数组引用本身。
正确的参数数量检查应放在任何数组元素访问(如 args[0])之前,否则可能触发 ArrayIndexOutOfBoundsException。以下是修正后的完整示例代码:
import java.util.*;
class MyException extends Exception {
@Override
public String toString() {
return "Something Went Wrong :(";
}
}
class ExceptionCLI {
public static void main(String[] args) {
// ✅ 第一步:先检查参数数量
if (args.length != 2) {
try {
throw new MyException();
} catch (Exception e) {
System.out.println(e.toString());
}
return; // 提前退出,避免后续非法访问
}
// ✅ 第二步:尝试解析参数(仍需处理 NumberFormatException)
try {
int A = Integer.parseInt(args[0]);
int B = Integer.parseInt(args[1]);
System.out.println("Result: " + A * B);
} catch (NumberFormatException e) {
System.out.println("Error: Both arguments must be valid integers.");
}
}
}
关键要点总结:
- ✅ 使用
args.length获取参数个数;args[].length编译不通过; - ✅ 校验必须前置——在访问
args[0]或args[1]之前完成; - ✅ 实际生产环境中,还应捕获
NumberFormatException,因parseInt()对非数字字符串会抛出该异常; - ✅ 推荐使用
return或System.exit(1)在校验失败后立即终止流程,提升可读性与安全性; - ? 补充知识:Java 中所有数组都继承自
Object,但仅提供length属性(非方法),不可调用args.length()。
遵循这一模式,你的 CLI 工具将具备基础的输入鲁棒性,为后续扩展(如支持选项解析、默认值、类型自动转换等)打下坚实基础。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











