This question already has answers here:
How can we print line numbers to the log in java
(20个答案)
6年前关闭。
我有一个对象的类,并且如果用户尝试向其构造函数提供负数,我想输出一条警告,告诉他们他们提供了以下形式的无效数字:
编辑:我将值设置为系统中的默认值,我不希望程序终止。
我真正想知道的是如何自动找到[2]。
如果发生这种情况,您将收到如下错误报告:
如果这不是GUI应用程序,则程序也会终止。 GUI应用程序和其他类型的应用程序将通过错误报告将其忽略,然后继续。
有关异常的更多信息,请参见Java Tutorial on Exceptions。
(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。