This question already has answers here:
How can we print line numbers to the log in java

(20个答案)


6年前关闭。





我有一个对象的类,并且如果用户尝试向其构造函数提供负数,我想输出一条警告,告诉他们他们提供了以下形式的无效数字:

System.out.println("ERROR ON LINE " + Thread.currentThread().getStackTrace()[2].getLineNumber() + ": You have provided an invalid number.\nSetting to default.");


编辑:我将值设置为系统中的默认值,我不希望程序终止。

我真正想知道的是如何自动找到[2]。

最佳答案

在这种情况下,您应该抛出异常,而不是打印错误消息。这样做的好处是可以在报告中包含行号。您将使用以下代码行:

throw new IllegalArgumentException("You must provide a positive number");


如果发生这种情况,您将收到如下错误报告:

Exception in thread main: java.lang.IllegalArgumentException: You must provide a positive number
    at YourClass(YourFile.java:lineNumber)


如果这不是GUI应用程序,则程序也会终止。 GUI应用程序和其他类型的应用程序将通过错误报告将其忽略,然后继续。

有关异常的更多信息,请参见Java Tutorial on Exceptions

09-11 18:10
查看更多