Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 停止访问的推荐方法是什么?_C#_Antlr4 - Fatal编程技术网

C# 停止访问的推荐方法是什么?

C# 停止访问的推荐方法是什么?,c#,antlr4,C#,Antlr4,我已经实现了我自己的访问者。在我的一次就诊XXX覆盖中,根据特定情况,我可能不得不中止整个就诊 推荐的方法是什么?很明显,我可以抛接球,但我想知道这是否会让事情处于一种奇怪的状态?抛接球。您需要展开堆栈,这是最简单的方法,即使它不漂亮。但当ANTLR需要回溯时,它在幕后实际上就是这么做的 只要确保您使用自己的异常类型,这样真正的异常就不会被错误地解释为取消 至于状态,visitor对象不保留任何状态,因此无需担心。看看访问者的源代码,里面没有隐藏的陷阱。只要你的代码没有在某个地方引入可能被破坏的

我已经实现了我自己的访问者。在我的一次就诊XXX覆盖中,根据特定情况,我可能不得不中止整个就诊


推荐的方法是什么?很明显,我可以抛接球,但我想知道这是否会让事情处于一种奇怪的状态?

抛接球。您需要展开堆栈,这是最简单的方法,即使它不漂亮。但当ANTLR需要回溯时,它在幕后实际上就是这么做的

只要确保您使用自己的异常类型,这样真正的异常就不会被错误地解释为取消


至于状态,visitor对象不保留任何状态,因此无需担心。看看访问者的源代码,里面没有隐藏的陷阱。只要你的代码没有在某个地方引入可能被破坏的状态,你就不会有问题。

它是否会让事情处于奇怪的状态主要取决于你的代码。你需要给我们看一些。是的,这正是我正在做的,我的访客没有任何状态。我在想也许有一个很好的方法谢谢你的确认。