You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java程序频繁报ArrayOutOfBoundsException:2错误,求解决方法

解决Java数组越界异常及直角三角形判断程序优化

异常原因分析

Exception in thread "main" java.lang.ArrayOutOfBoundsException: 2 表示你尝试访问数组索引为2的元素,但当前数组的长度不足3(数组索引从0开始,索引2对应第三个元素)。在你的程序里,就是运行时没有传入足够的命令行参数,导致args数组的元素数量小于3,直接读取args[2]就触发了越界。

完整修复后的代码示例

public class RightTriangleChecker {
    public static void main(String[] args) {
        // 检查命令行参数数量
        if (args.length != 3) {
            System.out.println("错误:请传入3个正整数作为三角形边长!");
            return;
        }

        int side1, side2, side3;
        // 安全转换字符串参数为整数
        try {
            side1 = Integer.parseInt(args[0]);
            side2 = Integer.parseInt(args[1]);
            side3 = Integer.parseInt(args[2]);
        } catch (NumberFormatException e) {
            System.out.println("错误:输入的必须是整数!");
            return;
        }

        // 验证边长为正
        if (side1 <= 0 || side2 <= 0 || side3 <= 0) {
            System.out.println("错误:边长必须是正整数!");
            return;
        }

        // 判断是否为直角三角形(覆盖所有直角边组合)
        boolean isRightTriangle = (side1*side1 + side2*side2 == side3*side3) 
                               || (side1*side1 + side3*side3 == side2*side2) 
                               || (side2*side2 + side3*side3 == side1*side1);

        if (isRightTriangle) {
            System.out.println("这三个数可以构成直角三角形。");
        } else {
            System.out.println("这三个数不能构成直角三角形。");
        }
    }
}

运行注意事项

  • 编译后运行时,必须传入3个整数参数,比如:
    java RightTriangleChecker 3 4 5
    
  • 如果参数数量不够、不是整数或为非正数,程序会给出明确错误提示,避免异常。

内容的提问来源于stack exchange,提问作者mAirborne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:42:40