Как я могу выбросить исключение внутри блока try и завершить программу - PullRequest
0 голосов
/ 03 мая 2020

Моя программа принимает ввод с консоли как DD/MM/YYYY, представляющий дату. Я сохраняю все данные соответственно.
В этом блоке try catch я проверяю, является ли переменная "m" правильным месяцем, относительно дня и между 1 и 12.

Если "m" не число, NumberFormatException выбрасывается.
Я хочу иметь возможность генерировать исключения внутри условий if и завершать программу, отображающую сгенерированную ошибку и сообщение, связанное с ней.

try
{
m = Integer.parseInt(data[1]);
if (m < 1 && m > 12)
    throw new NumberFormatException(m + " luna invalida");
else if ((m > 8 && m % 2 != 0 && d == 31) || (m < 8 && m % 2 == 0 && d == 31))
    throw new NumberFormatException(m + " " + d + " luna,zi invalida");
else
    luna = month[m];

} catch (NumberFormatException e)
{
    m = 0;
}

Ответы [ 2 ]

1 голос
/ 03 мая 2020

Вы должны иметь Integer.parseInt(data[1]) внутри блока try-catch, но весь остальной код вне его. Если вы часто используете parseInt, у вас может быть преобразование внутри функции.

m = 0;
try {
    m = Integer.parseInt(data[1]);
} catch (NumberFormatException e)
{
    e.printStackTrace();
}

// Rest of the code goes here
0 голосов
/ 04 мая 2020

Внутри блока захвата. Введите это

      System.exit(0).

Я использую его в javafx gui.

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