blog.toxn

あしあと

On Error Resume Nextなコードを駆逐するためには

構造化例外処理があるいま、On Error Resume Nextなんて構文にお目にかかるのは、 Excelマクロくらいのもん

そんなふうに考えていた時期が俺にもありました

On Error Resume Nextとは

Vishal Basicだけにある構文で、名前からも分かるようにエラー処理に使う。

On Error(エラーしたら) Resume Next(次の処理を続ける)…つまり、エラーは無視されるわけで。正しく動いているか分からないようなアプリはちょっとお守りできる気がしない。

構造化例外処理(Try...Catch)に置き換えられないか。。。

結論

そのままTry...Catch構文に置き換えるのは難しい。

理由

エラー時に次の行へ進む = 各行にTry...Catch書いてCatch句で何もしないのと同じ。 コードはこんな感じになる。

gistfc7ed6216c032edf4755

等価なコードにするのは現実的じゃないので、実装を見て例外処理するのがいいと思う。 ただ、こういうコードは不吉な匂いしかしないので、かなり苦労することは間違いない。。。