2013-11-21 66 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 ...