Ответ Эли будет работать нормально. Я просто отправляю ответ на ваш вопрос (комментарий) на ответ Илии.
Can you explain what a try-catch block is?
Сначала вы должны понять, что такое исключение. Исключением является событие, которое происходит во время выполнения вашей программы и нарушает нормальный поток инструкций программы.
В Java есть 3 вида исключений:
Исключения времени выполнения: Исключение называется исключением времени выполнения, если его тип данных java.lang.RuntimeException
или его подкласс.
Проверенные исключения: Исключение называется проверенным исключением, если его тип данных является дочерним классом java.lang.Exception
, но не дочерним классом RuntimeException
.
Ошибки: Исключение называется ошибкой, если его тип данных является дочерним классом java.lang.Error
. Ошибка связана с проблемами, которые возникают за пределами вашего приложения и обычно не пытаются исправить ошибки.
Для более подробного описания исключений читайте this .
Чтобы поймать и обработать эти исключения, вы используете блоки try-catch. Например, вы используете функцию Double.parseDouble
. Если параметр в этой функции не является допустимым числом, например, если пользователь вводит строку « NotANumber », вы пытаетесь преобразовать его в удвоенное значение, тогда NumberFormatException
будет выброшено Double.parseDouble
. Если вы не обработаете эту ошибку, ваша программа неожиданно прекратит работу.
Итак, вы должны написать что-то вроде следующего (включая нужную вам функцию положительных чисел):
double imperial1 = 0.0;
try {
double firstNumber = Double.parseDouble(strValue3);
double secondNumber = Double.parseDouble(strValue4);
if(firstNumber < 0 || secondNumber < 0)
throw new NumberFormatException("numbers must be positive.");
imperial1 = firstNumber + secondNumber / 12.0;
} catch(NumberFormatException ex) {
// Handle the exception maybe by printing a message to the user that his inputs
// weren't valid numbers.
}