Я пытаюсь написать программу, чтобы приравнять значение любого числа к любой мощности, и я предполагаю реализовать обработку исключений для показателей менее нуля, которые я успешно сделал, а также дескриптор исключений, когда значение слишком велико для вывода, т.е. бесконечности.Обработка исключений Java для Infinity
Heres мой класс мощности, который содержит функцию питания:
public class power
{
// instance variables - replace the example below with your own
public static double Power(double base, int exp) throws IllegalArgumentException
{
if(exp < 0){
throw new IllegalArgumentException("Exponent cannot be less than zero");
}
else if(exp == 0){
return 1;
}
else{
return base * Power(base, exp-1);
}
}
}
Heres класс Test:
public class powerTest
{
public static void main(String [] args)
{
double [] base = {2.0, 3.0, 2.0, 2.0, 4.0 };
int [] exponent = {10, 9, -8, 6400, 53};
for (int i = 0; i < 5; i++) {
try {
double result = power.Power(base[i], exponent[i]);
System.out.println("result " + result);
}
catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
catch (ArithmeticException e) {
System.out.println(e.getMessage());
}
}
}
}
Heres выход теста:
result 1024.0
result 19683.0
Exponent cannot be less than zero
result Infinity
result 8.112963841460668E31
мой вопрос заключается в как я могу получить «результат бесконечности», чтобы сказать что-то еще через ArithmeticException, обрабатывая что-то по линиям «Переполнение плавающей точки»?
благодарит заранее.
Непонятно, что вы просите. Вы хотите исключить исключение, если результат бесконечен? Вы хотите знать, как проверить, является ли результат бесконечным? – Radiodef
Выбросить исключение, когда результат бесконечен –
Хорошо, вы знаете, как выбрасывать исключение. Возможно, вы можете отредактировать свой вопрос, чтобы выяснить, с чем вы столкнулись. – Radiodef