Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未捕获NumberFormatException_Java_Object_Exception Handling - Fatal编程技术网

Java 未捕获NumberFormatException

Java 未捕获NumberFormatException,java,object,exception-handling,Java,Object,Exception Handling,我没有主意了,我不知道为什么这些异常没有被捕获,但是算术异常被捕获了。如果没有输入分子或分母,它应该捕获异常,对吗?如果能得到任何帮助,我将不胜感激。我一直在努力让这些异常类正常工作 public void actionPerformed(ActionEvent ev) { String numText = numFld.getText(); String denText = denFld.getText(); if(ev.getAct

我没有主意了,我不知道为什么这些异常没有被捕获,但是
算术异常
被捕获了。如果没有输入分子或分母,它应该捕获异常,对吗?如果能得到任何帮助,我将不胜感激。我一直在努力让这些异常类正常工作

public void actionPerformed(ActionEvent ev)
    {

        String numText = numFld.getText();
        String denText = denFld.getText();

        if(ev.getActionCommand().equals("Build Fraction"))
        {

            numFld.setText("");
            denFld.setText("");

            int numerator = Integer.parseInt(numText);  
            int denominator = Integer.parseInt(denText);

            try {
                System.out.println(numerator);
            }
            catch(NumberFormatException ex) {
                JOptionPane.showMessageDialog(pnlOne, "Numerator cannot be empty");
                System.out.println(ex.getMessage());
                numFld.requestFocus();
            }

            try {
                System.out.println(denominator);
            }
            catch(NumberFormatException ex) {
                JOptionPane.showMessageDialog(pnlOne, "Denominator cannot be empty");
                System.out.println(ex.getMessage());
                denFld.requestFocus();
            }

            try {
                System.out.println(numerator/denominator);
            }
            catch(ArithmeticException ex) {
                JOptionPane.showMessageDialog(pnlOne, "Denominator cannot be 0");
                System.out.println(ex.getMessage());
                denFld.requestFocus();
            }

            if (denominator !=0 && numText!="" && denText!="") {
            Fraction fraction = new Fraction(numerator,denominator);
            fractions.add(fraction);
            fractionFld.append(fraction.getNum() + "/" + fraction.getDen() + "\n\r");
            }

        }

发生崩溃是因为您试图在崩溃发生后捕获它,您应该将以下代码
Integer.parseInt(numText)
放入
try{}
块中:

     int numerator = 0;  
     int denominator = 0;

     try {
        numerator = Integer.parseInt(numText);  
        denominator = Integer.parseInt(denText);
     } catch(NumberFormatException ex) {
         //handle error
     }

您使用什么类型的视图作为
numFld
denFld
?你也可以发布崩溃日志吗?numfld和textfld是一个JTextPane,但是我如何在catch之外使用分子和分母变量呢statement@SeePlus您可以在try-catch块外初始化它们,但必须在try块内解析它们。@SeePlus我回答了您的问题吗?谢谢您的帮助,感谢您在一段时间后与我联系,了解情况:)