JavaScriptで捕まえたReferenceErrorの内容一覧(Google Chrome)
例えばこんなプログラムで定義されてないaを参照して例外を発生させ、エラーメッセージを表示します。
try{ eval("1+a"); }catch (e){ var msg = ""; for (err in e){ msg = msg + err + "\t"+ e[err] + "\n\n"; } console.log(msg); }
それをcatchで受け取ってプロパティを確認してみました。
message | a is not defined |
stack | ReferenceError: a is not defined at file://localhost/Users/********/Documents/... :9:5 |
type | not_defined |
arguments | a |
name | ReferenceError |
eは、message、stack、type、arguments、nameを持っているようです。
それぞれにプロパティの意味は、...これだけの情報ではよく分からないところもありますが、
message | エラーの内容 |
stack | エラーの内容とエラーの起こったファイル名と行数 |
type | ??? |
arguments | ??? |
name | エラーのオブジェクトの名前? |
ちなみにFirefoxでは、こんな風に出力されます。
message | a is not defined |
fileName | file:///Users/kabakiyo/Documents/.../***.html |
lineNumber | 9 |
stack | @file:///Users/kabakiyo/Documents/.../***.html:9 @file:///Users/kabakiyo/Documents/.../***.html:9 |
name | ReferenceError |
messageとnameは共通で利用できそうですが、それ以外は環境依存ですね。
OSはMac OS X 10.6.3、Google Chromeのバージョンは、5.0.366.0 dev、Firefoxのバージョンは、3.6.3