java异常捕获问题,从命令行输入数据

从命令行得到5个整数并存入一个整型数组,每两个数之间隔一个空格输出。如果命令行输入的数据不是整数,要求捕获Integer.parseInt()方法产生的异常(数字格式异常NumberFormatException),并提示“请输入整数”;如果输入的参数不足5个,要求捕获数组下标越界异常(ArrayIndexOutOfBoundsException),并提示“请输入至少5个整数”。求大神指点

5个回答

try{
int val = Integer.parse(arg[i]); //i=1,2...,5
}catch (NumberFormatException ex){
sysout("参数格式异常");
}catch (ArrayIndexOutOfBoundsException ex2){
sysout("参数不能小于5个");
}catch (Exception ex3){
sysout ("其它异常");
}

大概是这样子,你自己完善吧……

public static void main(String[] args) throws Exception {
    if(args.length < 5){
        throw new ArrayIndexOutOfBoundsException("请输入至少5个整数");
    }
    int count = 5;
    int[] arr = new int[count];
    for(int i=0; i<count; i++){
        try{
            arr[i] = Integer.parseInt(args[i]);
        }catch(Exception e){
            throw new NumberFormatException("请输入整数");
        }
    }
}
HeavyRainDi
HeavyRainDi 从哪里输入数据呢??
大约 4 年之前 回复

public static void main(String[] args) {

    /*
     * 从命令行得到5个整数,放入一个整型数组,然后打印输出 //要求:如果输入数据不为整数
     * 要捕获Integer.parseInt()产生的异常,显示“请输入整数”, 捕获输入数参数不足5个的异常(数组越界),
     * 显示“请输入至少5个整数”。
     */
    Scanner sc = new Scanner(System.in);
    int[] a = new int[5];
    System.out.println("请输入");
    for (int i = 0; i < 5; i++) {
        try {
            String aa = sc.next();
            a[i]=Integer.parseInt(aa);
        } catch (NumberFormatException e) {
            System.out.println("请输入整数");
        }catch(ArrayIndexOutOfBoundsException e){
               System.out.println("请输入5个整数");
          }finally{
              sc.close();
          }
    }
    System.out.println(Arrays.toString(a));

}
public class Test{
 public static void main(String[] args) throws Exception {
    if(args.length < 5){
        throw new ArrayIndexOutOfBoundsException("请输入至少5个整数");
    }
    int count = 5;
    int[] arr = new int[count];
    for(int i=0; i<count; i++){
        try{
            arr[i] = Integer.parseInt(args[i]);
        }catch(Exception e){
            throw new NumberFormatException("请输入整数");
        }
    }
}
}
HeavyRainDi
HeavyRainDi 从哪里输入数据呢??
大约 4 年之前 回复

来俩个catch
每个catch里面捕获一个异常,异常体里面来个控制台打印

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐