只是注意到我的学校书上写着"Math.sqrt(-9)给出了一个运行时错误“。现在,我很困惑,因为当我在IntelliJ和BlueJ IDE上尝试时,没有人给我一个RuntimeException,相反,它们都返回了NaN。此外,书中说"/ by 0“是一个”运行时错误“,因为它会导致ArithmeticException。现在我混淆了什么被归类为错误,什么被归类为异常。
编辑:请不要将此与扩展java.Throwable类的错误混淆。我假设这本书意味着错误是一个英语单词,而不是前面提到的Error。
发布于 2021-11-11 08:08:11
“当我使用一个词时,”汉普蒂·邓普蒂用一种相当轻蔑的语气说,“它的意思正是我所选择的意思--不多也不差。”(刘易斯·卡罗尔)
你的问题既没有一般的答案,也没有精确的或客观的答案。人们的意思是他们说或写的话--我想你能做的最好的就是问那些人。
这是我个人的理解。
RuntimeException具有精确的含义,因为它是一个Java类。RuntimeException是这个类的任何例外,或者它的许多子类之一,包括ArithmeticException。
对我来说,运行时错误是运行时发生的任何错误。通常意味着在编译时无法或无法检测到错误。什么是错误的定义不明确,有时是主观的.如果程序崩溃,通常会被认为是错误。如果它也提供了不正确的输出。如果程序在第一次尝试中未能传输某些数据,但在第二次尝试中成功,这是否是一个错误?用户输入不正确的数据并被通知是错误的吗?
所有抛出的异常都会在运行时抛出。这对于RuntimeException来说是特别的。名称RuntimeException最初意味着来自Java (JRE)的异常,而不是抛出在Java代码中。现在,很多RunetimeException都是使用throw语句抛出的。
对我来说,抛出的异常不一定是错误。有时,我们必须使用异常进行验证。我倾向于认为,如果程序员没有预见到异常的可能性,并且没有很好地处理它,那么异常就是一个错误。
"Math.sqrt(-9)给出一个运行时错误“
这可能是一个人写的,他不知道NaN是返回的,但希望得到一个ArithmeticException或其他异常。
https://stackoverflow.com/questions/69924483
复制相似问题