2013-11-21 97 views
0

我正在使用Android SAX解析器,它允許將監聽器綁定到EndTextElementListener事件,但是Android提供的監聽器不允許我們拋出異常,所以例如我該如何停止解析器在這個過程中?Android SAX實現不能拋出異常

一些代碼:

item.getChild("child").setEndTextElementListener(new EndTextElementListener() { 
     @Override 
     public void end(String s) { 

      if(expression) 
       throw new CustomException(); //Can't do this because end method don't throw SaxExceptions 

     } 
    }); 

CustomException的方式延伸的SAXException。但是聽衆不會拋出SaxExceptions,所以有什麼方法可以做到嗎?或者切換到拉解析器是唯一的選擇?

+0

你是說,編譯器不會讓你拋出一個異常?如何拋出未經檢查的異常,即RuntimeException的子類? – EJK

回答

1

如果您不關心究竟拋出了什麼類型的異常,那麼拋出一個RuntimeException的子類。編譯器將允許這樣做。

if(expression) 
    throw new MyCustomException(); 
} 

其中:

class MyCustomException extends RuntimeException ...