线程主 - 面向对象的异常

时间:2014-12-28 12:28:47

标签: java class object exception-handling object-oriented-analysis

我写了类" Fraction",以及我尝试执行的函数之一,如下所示:

public static Fraction readFraction() {
    String s = StdIn.readString();
    Fraction f = null;
    while (f == null) {
        int numerator;
        int denominator;
        try {
            int lineIndex = s.indexOf("/");
            if (lineIndex != -1) {
                numerator = Integer.parseInt(s.substring(0, lineIndex));
                denominator = Integer.parseInt(s.substring(
                        lineIndex + 1, s.length()));
            } else {
                numerator = Integer.parseInt(StdIn.readString());
                denominator = 1;
            }
            f = new Fraction(numerator, denominator);
        } catch (NumberFormatException e) {
            StdOut.println("Please enter a valid answer:");
        } catch (ArithmeticException e) {
            StdOut.println("Can't divide by zero, please enter a valid answer:");
        }
    }
    return f;

我在主线"中得到了一个"异常注意。我写了另一个类,我称之为这个函数,上面提到的错误是我得到的。 对于我插入的每个值,它给出了另一个例外。例如,当我插入' 4' (这是非法的)我得到:http://tinypic.com/r/2m3mv6w/8

我非常乐意为我的错误获取一些线索。 谢谢!

1 个答案:

答案 0 :(得分:0)

“主线程中的异常”可能是很多事情。只是让你觉得程序的主线程中发生异常。它不会告诉你它是什么类型的错误,以及它发生在哪里。 这就是你应该添加异常的堆栈跟踪的原因。如果您没有看到堆栈跟踪,请检查您对该函数的调用的catch块是否类似于e.printStackTrace();

我发布的内容中唯一可以告诉我的是,异常是RunTimeExcpetion,因为你的方法没有声明任何异常。

但是,正如您可能从javadoc检查的那样,有很多RunTimeExceptions ......