アフィリエイト広告を利用しています
最新記事
日別アーカイブ

広告

posted by fanblog

2012年09月06日

If 文の特性について

今回は If 文の特性について書きます。

VBScript では If 文などで分岐するときに、
失敗ケースを先に書いておくことをおすすめします。

問題になりそうな書き方は以下のとおりです。


On Error Resume Next
Set scr = CreateObject("Scripting.FileSystemObject")
IIf Not scr.FileExists(arg) Then
If Not scr.FolderExists(arg) Then
Call MainProcess(arg)
Else
MsgBox "チェックBに失敗しました"
End If
Else
MsgBox "チェックAに失敗しました"
End If


これを、以下のような書き方にします。


On Error Resume Next
Set scr = CreateObject("Scripting.FileSystemObject")
If scr.FileExists(arg) Then
MsgBox "チェックAに失敗しました"
ElseIf scr.FolderExists(arg) Then
MsgBox "チェックBに失敗しました"
Else
Call MainProcess(arg)
End If


肝となるのは On Error Resume Next と
If 文に実行時エラーが発生する可能性があることです。

On Error Resume Next がある If 文では、評価式の中でエラーが発生すると、
Then 以降の処理を実行してしまいます。
これが、予期しない処理を生んでしまうわけです。

したがって、If 文の書き方は、Else 以降に正常処理を書いておくほうが良いのです。
チェックに引っかかった場合の処理ということで、先頭にまとめて書いておけば
ソースの統一感も出ると思います。

もし不思議な処理でお悩みの方は、上記の書き方に変えてみることをおすすめします。


{a8.net http://books.livedoor.com/item/1660109}
posted by FJT at 06:25| VBScript
プロフィール
FJTさんの画像
FJT
使えそうな技術情報を掲載しています。 ぜひ、役立ててください。
プロフィール
リンク集
×

この広告は30日以上新しい記事の更新がないブログに表示されております。