我正在使用Android SAX解析器,它允许将侦听器绑定到EndTextElementListener事件,但Android提供的侦听器不允许我们抛出异常,因此例如如何在进程中停止解析器?
一些代码:
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 :(得分:1)
如果你不关心究竟抛出什么类型的异常,那么抛出一个RuntimeException子类。编译器将允许这样做。
if( expression )
throw new MyCustomException();
}
其中:
class MyCustomException extends RuntimeException ...