Что такое RuntimeException и как я могу это исправить? - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь напечатать исключение деления на ноль, но оно не работает:
это мой код:

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 голосов
/ 06 июня 2018

Я только что проверил - вам нужен оператор printf ("% s", e) вместо текущего вашего оператора print.Затем, если вы вводите 0 при вводе числа, оно должно указывать деление на ноль ошибок.

0 голосов
/ 06 июня 2018

Ваш код не работает для меня, если я не изменю печать на printf:

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

Но, как вы можете видеть в документации java.lang.ArithmeticException

[..] целое число «делить на ноль» создает экземпляр этого класса [..]

Но результатом деления в вашем случае является целое число, так как вы делите два целочисленных значения, но это заставило бы больше senes получить двойное значение или значение с плавающей запятой, и в обоих случаях исключение не выдается (результат деления - Double.POSITIVE_INFINITY).

Это означает, что вы должны добавить проверку, если ваша переменная "d" равна 0. Если она равна нулю, обработайте ее (например, напечатайте сообщение).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...