如何更改try / catch块

时间:2018-02-05 22:18:04

标签: java variables exception try-catch visibility

我想了解Java中的异常处理是如何工作的,我编写了简单的方法来设置数字(通过在控制台中键入它;使用Scanner)。 方法不能正常工作,因为它没有看到在try块中输入的数字,它总是返回-1;

有人可以解释一下我是否可以使用尝试块来更改代码中的数字?正如我所说,我想了解异常是如何运作的。

 static int numberOfRows() {        
            int rows = -1;
            Scanner scan = new Scanner(System.in);
            System.out.println("Enter number of rows");
            while (!scan.hasNextInt()) {
                try {
                    rows = scan.nextInt();
                } catch (Exception e) {
                    System.out.println("Error - type another value");
                    scan.next();
                }
                scan.close();
            }
            return rows;
        }

感谢您的帮助,我解决了我的问题:

static int numberOfRows() {     
        int rows = -1;
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter number of rows");
        while (!scan.hasNextInt()) {
            try {
                rows = scan.nextInt();
            } catch (Exception e) {
                System.out.println("Error - type another value");
                scan.next();
                continue;
            }
        }
        rows = scan.nextInt(); 
        scan.close();  // closing scanner may cause problems with InputStream   //Link [1]
        return rows;

0 个答案:

没有答案