javascript:理解try...catch...finally
以前、私はずっとコンサート・ロゴで出力のタイプと値を実行するのが好きでした.すぐにポップアップの情報を見たいです.直接ブラウザでalert()を見ます.これらは基礎知識です.
ちょっと複雑なので、判断文を使って、if elseで条件判断をします.if条件elseでないと、プログラムコードを書くためのコードノンという判断はもう熟知しています.
これも簡単だと思います.ミックスif else条件判定文にtry catchを加えて文を処理することができます.try catchではどの対象も処理できますが、throwで間違った文を投げて、その対象またはその対象のエラーを投げます.今日はtry...catchだけを言います.次の例は配列、時間、プロトタイプ、関数、数字の種類など
tryの語句を修正する時:
このケースを見てみます.以下の例を通して、try catch文の異常処理をよりよく知ることができます.
つまり、任意の所与の異常は、最も近い閉鎖的なcatchブロックから一度だけ捕獲される.
もちろん、「内部」のブロックから投げられたどんな新しい異常(catchブロックのコードも異常を投げることができますので)は、いずれも「;外部」ブロックによって取り込まれます
参考資料:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/try...catch
参考資料:https://msdn.microsoft.com/library/4yahc5d8(v=vs.94).aspx
ちょっと複雑なので、判断文を使って、if elseで条件判断をします.if条件elseでないと、プログラムコードを書くためのコードノンという判断はもう熟知しています.
これも簡単だと思います.ミックスif else条件判定文にtry catchを加えて文を処理することができます.try catchではどの対象も処理できますが、throwで間違った文を投げて、その対象またはその対象のエラーを投げます.今日はtry...catchだけを言います.次の例は配列、時間、プロトタイプ、関数、数字の種類など
array = [234= = = 12.22 array + '
' + newdate.toLocaleString() + '
' + fun.prototype.constructor +
'
' + ( is == 'number') +'
' + call ; 'err finally'
正確に言えば、tryには間違いが生じる可能性のある文を置いてください.try文が実行を開始し、エラーが発生した場合、catchは内部のステートメントと対応するtry内のエラーメッセージメッセージを実行します.finally文はいつ実行されますか?try文とcatch文が実行された後にのみfinally文を実行します.tryが異常を投げても、catchが捕獲してもfinally文を実行します.function trycatch () { try{
throw new Error('koringz');
} catch(e){
console.log(e.message);
} finally{
console.log('err finally');
}
}
trycatch ()// :// koringz// err finally
tryによって間違った語句を出しました.catchで間違った情報をキャッチしました.しかし同じfinallyも出力しました.try catchワークフローの処理方法は分かりますが、finallyブロックのコード処理手順はよく分かりません.以前のfinally文に対して一貫した考え方で、finally出力はtryとcatchの制限と制約を受けません.以下はfinallyのいくつかの出力デモコードです.function trycatch () { try{
throw new Error('koringz');
} finally{
console.log('err finally');
return console.log('new finally')
}
}
trycatch ()// err finally// new finally
上記のようにtryは間違った語句を投げました.finallyが出力した結果は次の通りです. //r finally //new finallyfunction trycatch () { try{
throw new Error('koringz');
} catch(e){
console.log('err finally');
return console.log('new finally')
}
}
trycatch ()// err finally// new finally
上記のように、tryは間違った語句を投げて、catchはエラー出力結果とfinallyをキャプチャします. //r finally //new finallytryの語句を修正する時:
function trycatch () { try{
//
} catch(e){
console.log('err finally');
return console.log('new finally')
}
}
trycatch ()// (viod)// (viod)
結果として出力はすべて空です.暇(viod)です.tryはエラーを出していませんので、catchは異常をキャッチしていません.出力結果は空です.このケースを見てみます.以下の例を通して、try catch文の異常処理をよりよく知ることができます.
try{ try{ throw new Error('open');
} catch(e){
console.info(e.message); throw e
} finally{
console.log('finally');
}
}catch(e){
console.log('op',e.message);
}// open// finally// op open
tryでエラーが発生する可能性のあるコードブロックにtry catchを入れ込み、入れ子のコードブロックtryによってエラーが発生する可能性のある語句を投げます. throw new Error('open')入れ子に続くtryは、入れ子のcatch処理にエラーを伝達し、最終的には入れ子のfinallyによって実行された後、最後の結果を見ました./op op openは、入れ子のcatchで捕獲されたエラー情報を最外層catchに捨てて捕獲しました. openつまり、任意の所与の異常は、最も近い閉鎖的なcatchブロックから一度だけ捕獲される.
もちろん、「内部」のブロックから投げられたどんな新しい異常(catchブロックのコードも異常を投げることができますので)は、いずれも「;外部」ブロックによって取り込まれます
参考資料:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/try...catch
参考資料:https://msdn.microsoft.com/library/4yahc5d8(v=vs.94).aspx