首先,在我被骂之前,我想澄清一点:我没有计划编写任何会使用这种控制流的代码;它显然很糟糕。忘记一个用例,这更像是一个关于它是否可能的问题:
我想知道是否有可能知道调用堆栈的某个地方是否正在为特定异常在 catch 块中调用函数。
假设我有一个功能:
foo() {
try {
something
}
catch (SuperException s) {
bar()
}
因此,如果无法控制 bar 的方法签名,并且给定的 bar 也被许多其他函数调用,那么如果在 catch 块中调用捕获超级异常, bar 的行为会有所不同吗?(不,被 foo 调用不是充分条件,它是最重要的超级例外)