当string.lenght()为0时抛出异常

时间:2017-05-15 12:41:27

标签: java string exception

我有以下练习要解决:

在本练习中,您将创建两个处理return new WordResponse($phpWord, "filename.docx"); 的方法。其中一种方法是exceptions方法,它将调用另一种方法。

如果在另一个方法中抛出异常,main()必须处理它。将包含main()语句以表明该程序已完成。 finally将调用的方法将命名为main(),它将颠倒reverse中字符的顺序。如果String不包含任何字符,则反向会将异常传播到String方法。

  1. 创建一个名为main()的类和一个Propagate方法,暂时保持为空。
  2. 创建一个名为main()的方法。它需要reverse的参数并返回String
  3. String中,使用reverse方法检查String的长度是否为0。如果长度为0,则String.length()方法将抛出异常。
  4. 现在包含反转reverse顺序的代码。因为这不是本章的主题,所以提供了反转代码,但您可以自己尝试。

    String reverseStr =“”; for(int i = s.length() - 1; i> = 0; - i){     reverseStr + = s.charAt(i); } return reverseStr;

  5. 现在在String方法中,您将尝试调用此方法并处理任何可能的异常。此外,您还会添加main()语句,该语句会在finally完成时显示。

  6. 问题在于,即使main()为0,也不会抛出异常。

    String.length()

2 个答案:

答案 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;
        
    }

}