当一个方法无法处理的异常时 - 程序是否终止并显示错误号?错误编号和错误信息来自哪里?如果程序员在编码时知道可能发生什么样的异常。如果是这样,为什么他不确保不发生异常。
答案 0 :(得分:2)
如果您使用的是Java API,则会记录每个方法抛出的异常。
当程序终止时,它会显示导致该特定问题的方法调用的堆栈跟踪。
检查lesson on Exceptions from The Java Tutorial。你可以在这里学到更多东西,而不是在这里阅读我的答案:)
答案 1 :(得分:1)
Java中有两种主要的异常类型:
- checked
- unchecked
未经检查的异常会进一步分解为RuntimeException和Error。
RuntimeExceptions是程序员错误(ArrayIndexOutOfBoundsException),错误是VM中的问题(OutOfMemoryError)。
你不应该捕获RuntimeExceptions - 你应该修复你的代码,这样就不会抛出异常。
您不应该捕获错误,因为虚拟机很可能处于无法从中恢复的状态。
如果您的主程序未捕获未经检查的异常,则会崩溃。
答案 2 :(得分:0)
Java Exceptions冒泡到某人捕获它们或者程序退出的程度。
在现实世界中,当使用许多框架时,异常从未冒泡到顶端。它们被捕获并报告(打印在控制台上)。捕获异常由try { } catch(..) { }
块完成。
有两种类型的例外 - 已选中和未选中。必须在方法签名中声明已检查的异常(与未选中的异常不同)
答案 3 :(得分:0)
程序员应该在编码时使用 知道什么样的例外 可能会发生
是的,但没有人是完美的。
为什么他没有确保异常 不会发生
在特殊情况下,您需要例外。您不想忽略该异常。 例如,假设您的程序创建了一个文件来保存用户设置。如果由于某种原因 文件创建失败(您的程序无法控制,这是操作系统的工作),您不希望继续发生任何事情。你希望有一个异常,所以无论是谁或任何调用该函数的函数都知道这个问题,并且可以做一些事情,例如告知用户。