Java 主线程中的异常-面向对象
我编写了类分数,其中一个函数我尝试执行wad readFunction,如下所示:Java 主线程中的异常-面向对象,java,class,object,exception-handling,object-oriented-analysis,Java,Class,Object,Exception Handling,Object Oriented Analysis,我编写了类分数,其中一个函数我尝试执行wad readFunction,如下所示: public static Fraction readFraction() { String s = StdIn.readString(); Fraction f = null; while (f == null) { int numerator; int denominator; try { int lineInde
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”时,我得到:
我非常乐意得到一些关于我的错误的线索。
谢谢大家! 不过,线程main中的异常可能有很多。只有在程序的主线程中发生异常时,您才会感到困惑。它不会告诉你它是什么类型的错误,以及它发生在哪里。 这就是为什么您应该添加异常的堆栈跟踪。如果没有看到stacktrace,请检查调用函数的catch块是否有类似于e.printStackTrace;的内容 从您发布的内容中,我能知道的唯一一件事是异常是,因为您的方法没有声明任何异常
但是,正如您可能从javadoc检查到的,有很多运行时异常 完整的错误消息是什么?继续阅读。您阅读的是枯燥的部分,而不是指向确切代码行的部分,在异常上有一个描述性的名称。线程main中的异常。@Mic-其余部分是……我告诉过您继续阅读:p NoTouchElementException是第一个有价值的信息。另外,将跟踪添加到您的问题中,而不是作为注释中或问题中图片的链接。旁注:你的标题应该与NoTouchElementException Scanner的内容一致。。。