什么是建议的方法来阻止访问
本文关键字:访问 方法 什么 | 更新日期: 2023-09-27 18:17:06
我已经实现了我自己的访问者。在我的一个VisitXXX重写中,我可能不得不根据特定条件中止整个访问。
推荐的方法是什么?很明显,我可以把它扔出去接住,但我想知道这是否会让事情处于一种奇怪的状态?
先扔,然后接住。你需要展开堆栈,这是最直接的方法,即使它不是漂亮的。但这正是ANTLR在需要回溯时在幕后所做的。
只要确保使用自己的异常类型,这样真正的异常就不会被错误地解释为取消。
至于状态,访问者对象不保留任何状态,因此无需担心。看看访问者的源代码,里面没有隐藏的陷阱。只要你的代码没有在某处引入一些可能被破坏的状态,你就会很好。