什么是RuntimeException以及如何解决它?

时间:2018-06-06 18:03:34

标签: java exception

我试图在零中打印除法除外但它不起作用:
这是我的代码:

import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int d=0; 
        Scanner S=new Scanner(System.in); 
        System.out.println("Please Enter an integer :");
        try{
            d=S.nextInt(); 
        System.out.println(1/d);    
        }
        catch(ArithmeticException e){
            System.out.print("%s",e);
        }

    }

}

2 个答案:

答案 0 :(得分:1)

您的代码对我不起作用,除非我将打印更改为printf:

System.out.printf("%s", e);

但正如您在java.lang.ArithmeticException的文档中看到的那样

  

[..]一个整数“除以零”抛出此类的实例[..]

但是除法的结果在你的情况下是整数,因为你要划分两个整数值,但是它会使更多的senes接收double或float值,并且在两种情况下都不会抛出异常(除法的结果)是Double.POSITIVE_INFINITY)。

这意味着你必须添加一个检查,如果你的变量“d”等于0.如果它为零则处理它(例如打印一条消息)。

答案 1 :(得分:0)

我刚试过它 - 你需要一个printf("%s",e)语句而不是你当前的print语句。然后,如果在输入数字时输入0,则应将除数误差为零。