我是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 的一个子类,因为大多数应用程序不应尝试捕获它。
就像一个不应该被捕获的例外。
因此,这些想法不能在同一上下文中使用。