当前位置: 首页 > 知识库问答 >
问题:

Java-输入不匹配异常不工作

堵存
2023-03-14

(更新的代码)无论出于什么原因,InputMismatchException的catch块无法正常工作。当代码抛出此错误时,catch块不会捕获它。有人知道为什么会这样吗?

import java.util.*;
public class ArrayException {
    
    public String getPriceDetails() {
        Scanner scnr = new Scanner(System.in);
        
        System.out.println("Enter the number of elements in the array");
        int num = scnr.nextInt();
        int array[] = new int[num];
        
        System.out.println("Enter the price details");
        
        for (int i = 0; i < num; ++i) {
            array[i] = scnr.nextInt();
        }
        
        System.out.println("Enter the index of the array element you want to access");
        
        try {
            int index = scnr.nextInt();
            return "The array element is " + array[index];
        } catch (InputMismatchException e) {
            return "Input was not in the correct format";
        } catch (ArrayIndexOutOfBoundsException e) {
            return "Array index is out of range";
        }
        
    }
    
    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);
        ArrayException mn = new ArrayException();
        
        String test = mn.getPriceDetails();
        System.out.print(test);
    }
}

共有1个答案

竺焕
2023-03-14

添加以下catch块以找出正在抛出的十六进制异常。也许会抛出另一个异常。

catch (Exception e){
    // Prints what exception has been thrown
    System.out.println(e);
}

我希望这对你有帮助。

 类似资料:
  • 编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答问题。 (更新的代码)无论出于什么原因,InputMismatchException的catch块无法正常工作。当代码抛出此错误时,catch块不会捕获它。有人知道为什么会这样吗?

  • 我正在为一堂课做家庭作业。你必须计算这个月的工资。每次我尝试运行它时,它总是这样说:我如何修复它?线程“main”java.util.InputMismatchException中的异常 java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(扫描仪.java:1485) java.util.Scanner.ne

  • 有点麻烦。 基本上,我得到了输入行 5,4,5 8,7=6,3 3,2 9,6 4,3=7,6=9,8=5,5 7,8 6,5 6,4

  • 我对Scanner有一个问题,因为它似乎采用输入值类型并强制用户下次输入值为相同类型。我找不到此代码不起作用的任何原因,并给我一个InputMismatchException,因为我已经编写了一百万次这样的代码并且没有问题。 这个问题不仅仅是register()方法的问题,而是整个程序的问题,例如下面的代码: 如果其中一种方法(如 register)要求用户输入字符串,则 int user=inp

  • 我有这个代码,我想捕捉字母异常,但它一直有以下错误: 这是我的代码:

  • 好的,我要学习一个CS安全类,里面有一些基本的java编程,我们的第一个任务是玩。然而,我们也必须“防弹”我们的计划。虽然我的方法不是最理想的,但除了第一次输入外,它仍然有效。如果我为任何