try catch捕捉異常分析
1338 ワード
try catch捕捉異常
ry cathの中でfunctionを定義して、functionを実行してtry catchの面で、捉えることができます.
try{ function d(){a.b;} d();}catch(e){consolie.logs("error",e);
error ReferenceError:a is not defined at d(:2:15) at:3:1
try cathの中でfunctionを定義して、functionを実行して外にいます.キャプチャできません.
try{ function d(){a.b;}catch(e){ consolone.log(「error」,e)}d;
出力:VM 608:2 Unicagt ReferenceError:a is not defined at d(:2:15) at:7:1
trycatchの中にsetTimeoutがあります.捕まえることができません.
try{ setTimeout(function(){ consolone.log(a.b) }, 3000)}catch(e){ consolone.log('error.');出力:VM 612:5 Unicaght ReferenceError:a is not defined at:5:22
try catchが捉えられますか?実行コードのコンテキストがtry catchの範囲内にあるかどうかを確認してください.
例えば、functionを実行する場合、functionのthisはどこを指していますか?
また文法エラーと非同期エラーがあります.trycatchは捉えられません.
ry cathの中でfunctionを定義して、functionを実行してtry catchの面で、捉えることができます.
try{ function d(){a.b;} d();}catch(e){consolie.logs("error",e);
error ReferenceError:a is not defined at d(:2:15) at:3:1
try cathの中でfunctionを定義して、functionを実行して外にいます.キャプチャできません.
try{ function d(){a.b;}catch(e){ consolone.log(「error」,e)}d;
出力:VM 608:2 Unicagt ReferenceError:a is not defined at d(:2:15) at:7:1
trycatchの中にsetTimeoutがあります.捕まえることができません.
try{ setTimeout(function(){ consolone.log(a.b) }, 3000)}catch(e){ consolone.log('error.');出力:VM 612:5 Unicaght ReferenceError:a is not defined at:5:22
try {
setTimeout(function () {
throw new Error(5)
}, 100)
} catch (e) {
console.log(“error”,e)
}
上記のように異常は捉えられません.非同期エラーは捉えられません.例えば、set Timeiut、promiseの中の非同期報が間違っています.また、外層のtrycatchは捉えられません.new Promise(function (resolve, reject) {
throw new Error('my error')
}).then(v=>{
console.log(v);
},e=>{
console.log(e);
});
これも異常を捉えることができます.これはプロミスの中で異常を捉えました.その後、フィードバックします.プロミケースの中では同期try catchで作りました.try catchが捉えられますか?実行コードのコンテキストがtry catchの範囲内にあるかどうかを確認してください.
例えば、functionを実行する場合、functionのthisはどこを指していますか?
また文法エラーと非同期エラーがあります.trycatchは捉えられません.