Java CLI程序如何检查参数数量?代码缺失条件求解
问题解决与代码修正
核心问题分析
你存在两个关键错误:
- 参数解析时机错误:你先尝试解析
args[0]和args[1]再判断参数数量,当参数不足2个时,会直接抛出ArrayIndexOutOfBoundsException,根本走不到自定义异常的逻辑。必须先判断参数数量,再做解析。 - 数组长度写法错误:Java中数组的长度属性是
数组名.length,不需要加[],正确写法是args.length。
修正后的完整代码
import java.util.*; class MyException extends Exception { // 修正toString里的语法错误:多余的右括号 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()); } } else { // 参数数量正确时再解析并计算 int A = Integer.parseInt(args[0]); int B = Integer.parseInt(args[1]); System.out.println("Result: " + A * B); } } }
额外优化建议
- 自定义异常可以通过构造方法传递错误信息,更符合Java规范:
class MyException extends Exception { public MyException(String message) { super(message); } } // 抛出时可改为:throw new MyException("参数数量错误,需要传入2个整数");
- 还可以增加对参数是否为整数的判断,避免
NumberFormatException,比如用try-catch包裹Integer.parseInt。
内容的提问来源于stack exchange,提问作者Almas Bhisti
相关产品推荐
相关产品推荐

