Обработка ошибок Java: как проверить число исключений - PullRequest
1 голос
/ 26 декабря 2011

Я изучаю Java, и я пытаюсь сделать очень простое приложение, которое делает конвертацию валюты. Вы вводите курс, направление (например, от евро к доллару или наоборот) и сумму. числа действительные неотрицательные числа.

Пока мне удалось сделать так, чтобы число не могло быть отрицательным; Теперь мне нужно выдать ошибку, если это не число. У меня есть следующий код:

public void setKoers(double koers) 
            throws NegativeValueException, NumberFormatException{
    if (koers > 0 ) {
            this.koers=koers;
        } else {
            throw new NegativeValueException("negative number");
        }
}

и мой главный выглядит как

    try   {
            cal.setKoers( Double.parseDouble(args[0])); 

          } catch(NegativeValueException e) {
             System.out.println(e.getMessage());
          } catch (NumberFormatException e) {
             System.out.println( e.getMessage());
          }

Так, как я могу проверить, является ли koers числом или нет. Я знаю, что я мог бы поставить попробовать и поймать ошибку в моем коде, но я думаю, что это пошло бы вразрез с логикой того, где и как бороться с ошибками: в моей основной функции я должен перехватить любое NumberFormatException

Ответы [ 2 ]

2 голосов
/ 26 декабря 2011

Вам не нужен NumberFormatException, так как Double.parseDouble() позаботится об этом за вас.Если это неправильное число (в данном случае Double), то метод parseDouble() выдаст вам NumberFormatException.

Вот как я бы написал:1008 *)

public void setKoers(double koers) throws NegativeValueException {
    if (koers > 0 ) {
            this.koers=koers;
        } else {
            throw new NegativeValueException("negative number");
        }
}

try{
    cal.setKoers( Double.parseDouble(args[0]));

    } catch(NegativeValueException e) {
        System.out.println(e.getMessage());
    } catch (NumberFormatException e) {
        System.out.println( e.getMessage());
    }
0 голосов
/ 26 декабря 2011

Возможно, вы захотите проверить ввод, когда пользователь скажет программе принять и обработать ввод. В этой части кода вы должны преобразовать строку в число путем разбора ввода в блоке try / catch, а затем, если возникнет исключение, уведомить пользователя об ошибке, предотвратить дальнейшую обработку и, возможно, очистите все поля ввода, если они есть.

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