System.out的替代方法,用于在基于控制台的应用程序中显示错误消息

时间:2018-04-12 10:41:03

标签: java console-application system.out

我正在开发一个基于控制台的应用程序。

使用System.out.println()在控制台上显示错误消息是一个好主意吗?我在我的类中使用了很多这些来处理错误。

我的班级看起来像这样:

public void validatePlayerSelection(String playerSelection, List<String> listOfIndex) {
    try {
        if (playerSelection == null || playerSelection.isEmpty()) {
            throw new NullPointerException();
        } else if (Integer.parseInt(playerSelection) < 11
                || Integer.parseInt(playerSelection) > ((size * 10) + size)) {
            System.out.println("The input you have entered cannot be found on the board");
        } else if (listOfIndex.contains(playerSelection)) {
            System.out.println("Cell already taken. Please select a different move.");
        } else {
            flag = false;
        }

    } catch (NumberFormatException e) {
        System.out.println("The input must be a number on the board");
    }
}

System.out.println的替代方法是什么?另外,这是编写代码的有效方法吗?

1 个答案:

答案 0 :(得分:4)

没有。您可以将控制台用于小事情,例如:实验代码。

一旦我们在现实世界中讨论任何,你就会注意使用某种Java日志框架。

例如log4j,或使用内置的logging工具。

说真的,即使您只是创建自己的小命令行帮助工具:了解如何使用日志框架并使用它。例如,您希望能够根据某种日志记录级别发出消息(请注意:详细,信息,警告,错误)。如果您不使用现有框架,您将不可避免地在某个时刻开始创建自己的框架。在这样做的过程中重复所有的错误,完全没有理由(除了学习经验)。

同样明白:日志记录与&#34;用户交互&#34;相同。您的示例所做的所有事情都是从用户获取信息(或给他一些回复/反馈)。对于那个,您使用最合适的路径(可能是system.out)。但对于任何事情&#34;否则&#34;您的应用程序可能希望&#34; log&#34; - 你最好注意替代系统而不是system.out。 System.err的。