我正在学习ANTLR4,而且我以前没有解析器生成器的经验.
当我定义自己的访问者实现时,我必须覆盖BaseVisitor的方法(我正在寻找本书第40页的EvalVisitor类的实例).如果我的方法实现可能抛出异常,我该怎么办?我不能使用已检查的异常,因为原始方法有一个空的throws子句.我希望使用未经检查的例外吗?(这似乎是一个糟糕的Java设计).例如,假设在EvalVisitor类中我希望方法visitId(页面41)抛出用户定义的异常,比如UndefinedId,而不是返回0.我应该如何编写代码?
您有两种选择:
将已检查的异常包装在未经检查的异常中.一种可能性是ParseCancellationException,但您必须自己确定在您的应用程序中是否有意义.
try {
...
} catch (IOException ex) {
throw new ParseCancellationException(ex);
}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1163 次 |
| 最近记录: |