关于java中异常的初学者问题
当发生方法无法处理的异常时,程序是否终止并显示错误号?错误号和有关错误的信息来自哪里?程序员在编码时应该知道可能会发生什么样的异常。如果是这样的话,他为什么不确保不发生例外呢? 如果您使用的是Java API,则会记录每个方法抛出的异常 当程序终止时,它会显示导致该特定问题的方法调用的堆栈跟踪关于java中异常的初学者问题,java,exception,exception-handling,Java,Exception,Exception Handling,当发生方法无法处理的异常时,程序是否终止并显示错误号?错误号和有关错误的信息来自哪里?程序员在编码时应该知道可能会发生什么样的异常。如果是这样的话,他为什么不确保不发生例外呢? 如果您使用的是Java API,则会记录每个方法抛出的异常 当程序终止时,它会显示导致该特定问题的方法调用的堆栈跟踪 检查一下。你在那里可以学到比在这里阅读我的答案多得多的东西:)Java异常冒泡到有人发现它们的时候,或者程序退出的时候。 在现实世界中,当使用许多框架时,异常永远不会出现在顶部。它们被捕获并报告(打印在控
检查一下。你在那里可以学到比在这里阅读我的答案多得多的东西:)Java异常冒泡到有人发现它们的时候,或者程序退出的时候。 在现实世界中,当使用许多框架时,异常永远不会出现在顶部。它们被捕获并报告(打印在控制台上)。捕获异常由
try{}catch(..{}
块完成
有两种类型的异常-已检查和未检查。选中的异常必须在方法签名中声明(与未选中的不同)Java中有两种主要类型的异常:
- checked
- unchecked
未检查的异常进一步分为RuntimeException和Error
运行时异常是程序员错误(ArrayIndexOutOfBoundsException),错误是VM中的问题(OutOfMemoryError)
您不应该捕获运行时异常-您应该修复代码,使其不会引发异常
您不应该捕获错误,因为VM可能处于无法进行任何恢复的状态
如果主服务器未捕获未检查的异常,它将崩溃
程序员在编写代码时是否应该
你知道什么样的例外吗
可能发生
是的,但没有人是完美的
他为什么不保证这个例外呢? 不会发生 在特殊情况下,您需要一个例外。您不希望忽略该异常。 例如,假设您的程序创建了一个文件来保存用户设置。如果出于某种原因
文件创建失败(您的程序无法控制,这是操作系统的工作),您不希望像什么都没发生一样继续下去。您希望存在异常,以便调用该函数的任何人或任何函数都知道此问题,并可以执行某些操作,例如通知用户。“他为什么不确保不会发生异常”说起来容易做起来难。