大陨石 2020-10-13 00:04 采纳率: 0%
浏览 56

在console输入数据赋值给args[0]后直接跳转至异常数组下标越界异常

import java.io.*;
public class Hello{
    public static void main(String[] args){
        while(true){
                    try{
                        System.out.println("请输入两个数");
                        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
                        String inputLine1 = in.readLine();
                        args[0] = inputLine1;
                        String inputLine2 = in.readLine();
                        args[1] = inputLine2;
                        int n1 = Integer.parseInt(args[0]);
                        int n2 = Integer.parseInt(args[1]);
                        System.out.println("两数相除的结果是:" + n1/n2);
                    }catch(ArrayIndexOutOfBoundsException ex){
                        System.out.println("数组下标越界异常:请输入两个数");
                        continue;
                    }catch(NumberFormatException ex){
                        System.out.println("数字格式异常:请输入两个整数");
                        continue;
                    }catch(ArithmeticException ex){
                        System.out.println("算数异常:除数不能为零");
                        continue;
                    }catch(Exception e){
                        System.out.println("。。");
                        continue;
                    }
                    break;
        }
    }
}

图片说明
图片说明
图片说明
这些是debug时候的顺序,输入一个值后直接跳转至数组下标越界异常那个地方。
这个代码的本意是输入两个值,赋值给args[0]和args[1],通过输入不同的值来跳转到相应的异常,但是我只是输入了一个值就跳转了,求指导,谢谢各位大佬。

  • 写回答

2条回答 默认 最新

  • storm_huang 2020-10-13 08:53
    关注

    因为args没有重新做初始化定义长度。运行的时候没带参数,args为String[0],需要重新初始化或者定义另外一个数组。
    一般建议是新建一个数组,不要用args,她是作为运行入参使用。

    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制