У меня есть следующее упражнение:
В этом упражнении вы создадите два метода, которые имеют дело с exceptions
. Одним из методов является метод main()
, который вызывает другой метод.
Если исключение выдается в другом методе, main()
должно иметь дело с ним. Оператор finally
будет включен, чтобы указать, что программа завершилась. Метод, который вызовет main()
, будет называться reverse
, и он обратит порядок символов в String
. Если String
не содержит символов, обратный будет распространять исключение до метода main()
.
Propagate
и метод main()
, который пока останется пустым. reverse
. Он принимает аргумент String
и возвращает String
. reverse
проверьте, имеет ли длина String
значение 0, используя метод String.length()
. Если длина равна 0, метод reverse
сгенерирует исключение. Теперь включите код для изменения порядка String
. Поскольку это не основная тема этой главы, был предоставлен код реверсирования, но вы можете попробовать его самостоятельно.
String reverseStr = ""; for (int i = s.length () - 1; i> = 0; - i) {reverseStr + = s.charAt (i); } return reverseStr;
Теперь в методе main()
вы попытаетесь вызвать этот метод и разобраться с любыми потенциальными исключениями. Кроме того, вы включите оператор finally
, который отображается после завершения main()
.
Проблема в том, что даже если String.length()
равно 0, исключение не выдается:
import java.util.*;
import java.util.Scanner;
import java.lang.IllegalArgumentException;
public class TryAndCatch {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter: ");
String entry = keyboard.next();
try {
if (entry.length() == 0) {
}
}
catch (IllegalArgumentException e) {
System.err.println("String can't have 0 characters: " + e.getMessage());
}
System.out.println("The reverse String is : " + TryAndCatch.reverse(entry));
keyboard.close();
}
static String reverse(String text) {
String reverseString = "";
for (int i = text.length() - 1; i >= 0; i--) {
reverseString += text.charAt(i);
}
return reverseString;
}
}