![](/img/trans.png)
[英]A beginner' question about RejectedExecutionException in Java
[英]beginner question about exception in java
当发生方法无法处理的异常时,程序是否终止并显示错误号? 错误号和错误信息从何而来? 程序员在编码时是否应该知道可能发生哪种异常。 如果是这样,他为什么不确保不会发生异常。
如果使用Java API,则会记录每个方法引发的异常。
程序终止时,它会显示导致该特定问题的方法调用的堆栈跟踪。
查看Java教程中有关异常的课程 。 您可以在这里了解更多信息,而不是在这里阅读我的答案:)
Java中有两种主要的异常类型:
- checked
- unchecked
未检查的异常进一步细分为RuntimeException和Error。
RuntimeExceptions是程序员错误(ArrayIndexOutOfBoundsException),而Errors是VM中的问题(OutOfMemoryError)。
您不应该捕获RuntimeExceptions-您应该修复代码,以便它不会引发异常。
您不应捕获错误,因为VM可能处于无法采取任何措施从错误中恢复的状态。
如果您的主体没有捕获到未经检查的异常,它将崩溃。
Java异常会一直上升到有人抓住它们或程序退出的地步。 在现实世界中,当使用许多框架时,异常永远不会冒出来。 他们被捕获并报告(打印在控制台上)。 捕获异常是通过try { } catch(..) { }
块完成的。
异常有两种类型-选中和未选中。 必须在方法签名中声明已检查的异常(与未检查的异常不同)
程序员在编码时是否应该知道可能发生哪种异常
是的,但没有人是完美的。
他为什么不确保不会发生异常
在特殊情况下,您想例外。 您不想忽略该异常。 例如,假设您的程序创建了一个文件来保存用户设置。 如果由于某种原因文件创建失败(您的程序无法控制,这是操作系统的工作),则您不想继续进行,就像什么都没发生一样。 您希望有一个例外,以便任何人或任何调用该函数的函数都知道此问题,并且可以执行某些操作,例如通知用户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.