On Error とか例外機構っていうのは、メモリ不足とかファイルの不在なんかのソフトウェア的には想定しづらい
例外的な事象に使うものなんだよ。
例えば「関数引数に対する事前条件がもし守られていなかったら」なんていう
ソフトウェア的に想定できるような事には例外を使うのべきじゃない。
ましてや配列の次元の取得なんてことに使うのは「ひどい」としか言いようがない。
それはセンスとかの問題じゃなくて常識だと思うよ。