try-catchの中にfunctionとかが出てきても平気なようだ。
try { function outer() { inner(); function inner() { alert("Hello World"); } } outer(); } catch(e) { alert(e.number + ": " + e.description); }
みたいなことをしてもパースエラーにならない。これって、JavaでThrowableをcatchするようなことが出来るのではと思った。JavaScriptのコードの最初と最後をtry-catchで囲んでおくだけで、誰にもcatchされなかった居残りエラーを最終的に捕まえることが出来るみたいな。
でも、何か実用的な感じがしないのは、catchのエラーオブジェクトに詳しい情報が入っていないせいかもしれない。
>誰にもcatchされなかった居残りエラーを最終的に捕まえることが出来る
window.onerror = function(e){ alert(e); }
でも同じような事が出来ます!
window.onerrorって記憶にある名前だ!!
というか、ありがとうございます。
Javaだと、classの外にtry-catchを書くとかありえないので
少々、興奮してしまいました。
window.onerrorはJavaでいうVMのcatchする例外って感じですね。そこを自由に出来るのがJavaScriptらしいですが。