【问题标题】:Exception in thread main - object oriented线程主异常 - 面向对象
【发布时间】:2014-12-28 12:28:46
【问题描述】:

我编写了“Fraction”类,我尝试执行的函数之一是 wad readFunction,如下所示:

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

我很乐意得到一些关于我的错误的线索。 谢谢!

【问题讨论】:

  • 完整的错误信息是什么?
  • 继续阅读。您阅读了无聊的部分,而不是指向确切代码行的部分,并在异常上带有描述性名称。
  • 主线程异常。
  • @Mic - 剩下的就是......
  • 我告诉你继续阅读:p NoSuchElementException 是第一个有价值的信息。此外,将跟踪添加到您的问题中,而不是作为 cmets..或问题中图片的链接。附带说明:您的标题应符合 "NoSuchElementException Scanner..."

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


【解决方案1】:

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

从您发布的内容中我唯一可以看出,异常是RunTimeExcpetion,因为您的方法没有声明任何异常。

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

【讨论】:

    猜你喜欢
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 2016-07-22
    • 2013-12-20
    相关资源
    最近更新 更多