VBプログラマ質問スレ(Ver.6.0 まで) part64
■ このスレッドは過去ログ倉庫に格納されています
0855デフォルトの名無しさん
2015/08/19(水) 20:08:48.69ID:xc/++r0ffoo()の中をこのように書く。
(手抜き。真面目にやる場合もう少し工夫が必要)
Private Sub foo()
On Error Resume Next
hoge()
If Err.Number Then
' ここで新しいnumberとかsourceとかdescriptを生成する
Err.Raise number, source, description
End If
hage()
If Err.Number Then
' 同じくここで新しいnumberとかsourceとかdescriptを生成する
Err.Raise number, source, description
End If
End Sub
On Error Resume NextではなくOn Error Gotoを使用してもいいが
On Error Gotoを使う意図しない場所でエラーが発生しても、
同じ場所でトラップしてしまうため、Resume Nextの方がやりやすい。
くれぐれも言っておくが、原則として関数の中でエラーをトラップして
戻り値でエラーを返してはいけない。
特に理由がない限り、エラーをトラップして、また実行時エラーにして
呼び出し元に返す。
この原則を守っていれば、基本のコードから、応用のコードに
スムーズに発展させていくことができる。
■ このスレッドは過去ログ倉庫に格納されています