首页 > 解决方案 > 如何正确退出线程“main”中的 JOptionPanel 异常 java.lang.NumberFormatException: null

问题描述

我正在尝试创建一个用户必须输入整数的 GUI。如果用户输入一个非整数,它会提示 GUI。我也希望它退出。当我让它退出时,我得到这个错误:

线程“主”java.lang.NumberFormatException 中的异常:null。

我有点菜鸟,需要一些指导:)

public class Generator

{


    public static void main (String[] args)
    { String input = JOptionPane.showInputDialog("Enter Desired Analysis level");
        int analysisLevel = Integer.parseInt(input);
        try
        {
            if (analysisLevel >= 0)
            {
                System.out.println(analysisLevel);

            }


            else
            {

                input = JOptionPane.showInputDialog("Enter Desired Analysis level");

            }
        }
        catch (Exception e)
        {
            System.out.println("Input was no number" + e);
            System.exit(0);

        }
        System.exit(0);
}
}

标签: javanumberformatexception

解决方案


问题是您将可能导致异常 ( ) 的一行留在int analysisLevel = Integer.parseInt(input);了 try/catch 块之外。你需要把它移到里面:

String input = JOptionPane.showInputDialog("Enter Desired Analysis level");
try
{
    int analysisLevel = Integer.parseInt(input);
    if (analysisLevel >= 0) {
        System.out.println(analysisLevel);
    } else {
        input = JOptionPane.showInputDialog("Enter Desired Analysis level");
    }
}
catch (Exception e)
{
    System.out.println("Input was no number. " + e);  
}

此外,您不需要System.exit(0);'s,因为程序无论如何都会退出,并且使用System.exit(0);通常不是好的做法。


推荐阅读