我是java的新手。我正在尝试用java实现会议室预订系统。我想将所有错误信息打印到提示符。
搜索后,我发现System.err.println("error 101")
和java.lang.Error("error 101")
都可以创建错误并输出。
因此,我的问题是(1)它们之间有什么区别? (2)在实施系统时哪一个更有效?
答案 0 :(得分:1)
这两个人彼此无关。
(1)他们之间有什么区别?
System.err
是您可以写入的PrintStream
,将输出到控制台的标准错误流,用于在控制台中运行的应用。
Error
是一个错误类,对于程序可能无法恢复的严重错误,它是Throwable
。
(2)在实施系统时哪一个更有效?
“更有效”是一个非常模糊的术语。
在正常情况下,如果您的程序是命令行程序,则可能会向System.err
输出错误消息。您不太可能直接抛出Error
或将其子类化;相反,对于例外条件,您可能会使用其中一个Exception
类和/或派生自己的类。
我建议阅读上面链接的文档,还有Java Exceptions Tutorial,了解有关异常处理的更多信息。
答案 1 :(得分:0)
这是不同的事情。
System.err.println
在错误流中打印一条消息。
java.lang.Error
错误是Throwable的子类,表示合理的应用程序不应该尝试捕获的严重问题。大多数此类错误都是异常情况。 ThreadDeath错误,虽然是“正常”条件,但也是Error的子类,因为大多数应用程序不应该尝试捕获它。
就像一个不应该被捕获的例外。
所以这些思想不能在同一个背景下使用。