几天前我们有一个关于try catch和finally块的讲座,但是我想知道JVM如何处理Try catch和最后的代码。如果生成异常,那么catch如何解决它。在异常处理和异常生成期间,每个块内部会发生什么。系统如何知道获得的结果是异常而不是合法的输出。当执行try catch块时,pc内部究竟发生了什么。
如果有人能告诉我这些概念,那将是一个很大的帮助。答案 0 :(得分:1)
捕获并不一定“解决它”。 catch用于在发生异常时处理代码。你可以在catch块中放入你想要的任何有效代码。
在try块中,如果行中出现异常,则会逐行执行代码,异常将抛出。然后使用catch块来捕获异常并处理它。如果未捕获异常,则会导致运行时错误。 try块中的执行将在try块中发生异常的任何时刻停止,并且不会完成处理try块的其余部分。它将直接跳转到catch块以处理该特定异常的代码。
无论是否发生异常,finally块都用于执行代码块。只要捕获到异常,无论是否发生异常,都将始终执行finally块。
答案 1 :(得分:0)
通常,当在try块中的语句中发生任何问题或错误时,它会直接重定向到catch块以获取哪种类型的异常。如果异常得到它的处理程序而不是它处理它,否则错误。