Java异常处理理解问题

标签 java exception arithmeticexception

我无法理解这个程序。我希望它输出“Hello World”,但它只打印“World”。我认为首先会执行 try block ,打印“Hello”和“”,然后当它遇到 1/0 时,它会抛出一个 ArithmeticException 。异常将被 catch block 捕获,然后打印“World”。

程序如下。

 import java.util.*;
 class exception{
     public static void main(String args[]) 
     {
         try
         {
             System.out.println("Hello"+" "+1/0);
         } 
         catch(ArithmeticException e) 
         {
             System.out.println("World");
         }
     }
 }

最佳答案

调用println函数之前抛出异常。参数值必须在函数调用之前计算。

为了让您的程序达到您期望的结果,您需要编辑 try block 中的代码,如下所示:

     try
     {
         // this will work and execute before evaluating 1/0
         System.out.print("Hello ");
         // this will throw the exception
         System.out.print(1/0);
     } 
     catch(ArithmeticException e) 
     {
         System.out.println("World");
     }

关于Java异常处理理解问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38107327/

相关文章:

java - 启动时打开抽屉导航

python - 在 Python 中检查图像 URL 是否指向真实图像

c# - Silverlight 4 剪贴板安全异常 "access is not allowed"?

java - try-multicatch 与 ExceptionInInitializerError 和 ArithmeticException 混淆

java - 为什么我得到 java.lang.ArithmeticException : divide by zero

java - 在命令行 java 中突出显示文本

java - 多线程FTP下载

java - 如何在一定时间后重复调用一个函数

Java - 提示用户输入命令,如果无法识别则抛出错误

sql-server-2008-r2 - 在 INT 列上使用 SUM 时如何防止算术溢出错误?