ScriptControlメモ

ScriptControlで呼んでるjsなりvbsなりで何か起きても詳細わかんなくて不便だなぁ

なんて何年も思ってたんだけど、ScriptControl.Errorでわかるんだわ
なんだよもう

あとScriptControl.CodeObjectの使い方が分かった

sc = createoleobj("ScriptControl")
sc.language = "jscript"
try
    sc.ExecuteStatement(statement)

    js = sc.CodeObject
    
    print js.add(4, 5)
    print js.multi(20, 5) // エラー

except
    e = sc.Error
    print
    print "--------------------------------------"
    print TRY_ERRLINE
    print TRY_ERRMSG
    if e.number then
        print
        print e.Source + " (" + e.Number + ")"
        print e.Description
        print "[Line: " + e.Line + "] " + e.Text
    endif
    print "--------------------------------------"
endtry

textblock statement
var add = function(n, m) { return n + m; } var multi = function(n, m) { return h * m; }
endtextblock

print結果

9

--------------------------------------
9行目: PRINT JS.multi(20, 5)
COM_Error:例外が発生しました。

Microsoft JScript 実行時エラー (5009)
'h' は宣言されていません。
[Line: 5] 
--------------------------------------

ScriptControl.Errorのプロパティはも少しあるんだけどこのくらいで十分かなって
Textプロパティはエラー行の内容返すっぽいんだけどこれだとなんもないんな…

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中