VBA
ちょっと前に仕事でVBAをやる羽目になった。
いままでVBAをやる機会がなかったので他人のソースを見たり、WEBで適当に調べてやっていた。
納期もわりと厳しめだし要求されるレベルは高かった・・・
そんなグチはともかくVBA(VB?)には以下のような構文がある。
001 Sub Hoge() 002 On Error Goto Err_Hoge 003 004 ' 大事なお仕事 005 006 Err_Hoge: 007 008 ' 大事なエラー処理 009 End 010
んで、ふむふむこいつはtry〜catchみたいなやつだと勝手に解釈してコーディングを進めていた。
数日後に自称「数年前まではExcel VBAで日本で5本の指に入っていた」先輩と話す機会があり聞いてみたところ
On Error Gotoは自分の思う仕様と全然違うものだと知って愕然とした。
001 Sub Hoge() 002 On Error Goto Err_Hoge 003 004 ' 大事なお仕事 005 Call Hige() 006 007 Err_Hoge: 008 009 ' 大事なエラー処理 010 End 011 012 Sub Hige() 013 014 ' 割と大事な仕事★ 015 016 End
私は、Sub Hige()中で起こったエラーは呼び出しもとのHoge()でキャッチされて、Err_Hogeで捕まえられると思っていたのだ。。。orz
早めに気づいてよかった。(´ヘ`;)。id:Yamamiさんに怒られそうだなぁ。
こういう自分の勝手な思い込みで痛い目にあわないようにやっぱり基礎はきちんと勉強しないとと反省した。