System.err 和 java.lang.Error 有什么区别



我是java的新手。我正在尝试使用 java 实现会议室预订系统。我想将所有错误信息打印到提示符上。

搜索后,我发现System.err.println("error 101")java.lang.Error("error 101")都可以创建错误并将其输出。

因此,我的问题是(1)它们之间有什么区别?(2)在实施系统时,哪一个更有效?

两者无关

(1)它们之间有什么区别?

System.err 是可以写入的PrintStream,对于在控制台中运行的应用,该将输出到控制台的标准错误流。

Error是一个错误类,它是程序可能无法从中恢复的严重错误的Throwable

(2)在实施系统时,哪一个更有效?

"更有效"是一个非常模糊的术语。

在正常过程中,您可能会输出错误消息,System.err您的程序是否是命令行程序。你不太可能直接抛出Error或子类化它;相反,对于特殊情况,您可能会使用Exception类之一和/或派生自己的类。

我建议通读上面链接的文档,以及 Java 异常教程,了解有关异常处理的更多信息。

那是

不同的事情。

System.err.println将消息打印到错误流。

java.lang.Error

错误是 Throwable 的一个子类,它指示合理的应用程序不应尝试捕获的严重问题。大多数此类错误都是异常情况。ThreadDeath 错误虽然是"正常"情况,但它也是 Error 的一个子类,因为大多数应用程序不应尝试捕获它。

就像一个不应该被捕获的例外。

因此,这些想法不能在同一上下文中使用。

相关内容

最新更新