我写了类" 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
我非常乐意为我的错误获取一些线索。 谢谢!
答案 0 :(得分:0)
“主线程中的异常”可能是很多事情。只是让你觉得程序的主线程中发生异常。它不会告诉你它是什么类型的错误,以及它发生在哪里。
这就是你应该添加异常的堆栈跟踪的原因。如果您没有看到堆栈跟踪,请检查您对该函数的调用的catch块是否类似于e.printStackTrace();
。
我发布的内容中唯一可以告诉我的是,异常是RunTimeExcpetion,因为你的方法没有声明任何异常。
但是,正如您可能从javadoc检查的那样,有很多RunTimeExceptions ......