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 {
      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は捉えられません.