我有以下练习要解决:
在本练习中,您将创建两个处理return new WordResponse($phpWord, "filename.docx");
的方法。其中一种方法是exceptions
方法,它将调用另一种方法。
如果在另一个方法中抛出异常,main()
必须处理它。将包含main()
语句以表明该程序已完成。 finally
将调用的方法将命名为main()
,它将颠倒reverse
中字符的顺序。如果String
不包含任何字符,则反向会将异常传播到String
方法。
main()
的类和一个Propagate
方法,暂时保持为空。main()
的方法。它需要reverse
的参数并返回String
。String
中,使用reverse
方法检查String
的长度是否为0。如果长度为0,则String.length()
方法将抛出异常。现在包含反转reverse
顺序的代码。因为这不是本章的主题,所以提供了反转代码,但您可以自己尝试。
String reverseStr =“”; for(int i = s.length() - 1; i> = 0; - i){ reverseStr + = s.charAt(i); } return reverseStr;
现在在String
方法中,您将尝试调用此方法并处理任何可能的异常。此外,您还会添加main()
语句,该语句会在finally
完成时显示。
问题在于,即使main()
为0,也不会抛出异常。
String.length()
答案 0 :(得分:0)
试一试。这应该给你例外。
public static void main(String[] args) throws Exception {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter: ");
String entry = keyboard.nextLine();
keyboard.close();
if (entry.length() == 0) {
throw new Exception("Exception Found");
}
else {
String reverse = reverse(entry);
if (reverse.length() == 0) {
throw new Exception("Exception Found");
}
else {
// Do your Code
System.out.println(reverse);
}
}
}
static String reverse(String text) {
String reverseString = "";
for (int i = text.length() - 1; i >= 0; i--) {
reverseString += text.charAt(i);
}
return reverseString;
}
使用 nextLine()代替 next()
答案 1 :(得分:0)
上面的答案很有帮助,但是异常需要从反向方法传播到主要方法。
package exceptions.examples;
public class Reverse {
public static void main(String[] args) {
// TODO Auto-generated method stub
String reverse = "", reversedString;
try {
reversedString = reverseme(reverse);
System.out.println("Reversed String : "+reversedString );
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
finally {
System.out.println("Finished!");
}
}
public static String reverseme(String reverse) throws IllegalArgumentException {
String reversedString = "";
if(reverse.length() == 0) {
throw new IllegalArgumentException("Length cannot be zero!");
}
for(int i = reverse.length() - 1; i >= 0; i--) {
reversedString += reverse.charAt(i);
}
return reversedString;
}
}