別解として「エラーなら次の関数を実行する」という関数を作るという方法もある。

VBでは実装しにくいから関数オブジェクトにして

nantoka(new A(), new B(), new C())

A、B、Cはそれぞれrun(名前はなんでもいいけど)メソッドという
インターフェースを持ったクラス。

nantokaって関数は、エラーであれば次の引数のrunを呼ぶみたいな
コードを書けばいい。

A、B、Cそれぞれのクラスができるからちょっと面倒。
CallByName当たりを使えば一つのクラスで実装できるだろう。