如何以更具体的方式处理 NumberFormatException?

Ask*_*kar 1 java validation exception-handling numberformatexception

我想以更具体的方式处理 NumberFormatException。当输入以下内容时,尝试分配除整数以外的任何内容时,会发生此异常:

  1. 细绳
  2. 特点
  3. 空输入
  4. 双号

根据输入的内容,我想显示正确的消息,例如

您已输入字符串,请输入一个整数

或者

值不能为空,请输入整数值

下面的代码NumberFormatException以一般方式捕获。

我想知道有没有办法包含更多的 catch 子句。

    import java.util.Scanner;

    public class TestException {

        static int input;
        static Scanner scan = new Scanner(System.in);

        public static void main(String[] args) {
            System.out.println("Enter an integer number: ");

            try {
                input = Integer.parseInt(scan.next());
                System.out.println("You've entered number: " + input);
            } catch (NumberFormatException e) {
                System.out.println("You've entered non-integer number");
                System.out.println("This caused " + e);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

İsm*_*kan 5

首先从用户那里获取输入,然后尝试将其转换为整数。

    static int input;
    static Scanner scan = new Scanner(System.in);

    public static void main(String[] args) {
        System.out.println("Enter an integer number: ");

        String inputString = scan.next();

        try {
            input = Integer.parseInt();
            System.out.println("You've entered number: " + input);
        } catch (NumberFormatException e) {
            if(inputString.equals("") || inputString == null) {
                System.out.println("empty input"); 
            } else if(inputString.length == 1) {
                System.out.println("char input");
            } else {
                System.out.println("string input");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)