javascript中try...catch...finallyを理解する
3722 ワード
本論文では、Javascriptのtry...catch...finallyの使い方を分析し、皆さんに参考にさせていただきました.具体的な内容は以下の通りです.
ちょっと複雑なので、判断文を使って、if elseで条件判断をします.if条件elseでないと、プログラムコードを書くためのコードノンという判断はもう熟知しています.
これも簡単だと思います.ミックスif else条件判定文にtry catchを加えて文を処理することができます.try catchではどの対象も処理できますが、throwで間違った文を投げて、その対象またはその対象のエラーを投げます.今日はtry...catchだけを言います.次の例は配列、時間、プロトタイプ、関数、数字の種類など
tryの語句を修正する時:
このケースを見てみます.以下の例を通して、try catch文の異常処理をよりよく知ることができます.
つまり、任意の所与の異常は、最も近い閉鎖的なcatchブロックから一度だけ捕獲される.
もちろん、「内部」ブロックから投げられた任意の新しい異常(catchブロックのコードも例外を投げることができるので)は、「外部」ブロックに捕獲されます.
以上が本文の全部です.javascriptプログラムの設計を勉強するのに役に立ちます.
ちょっと複雑なので、判断文を使って、if elseで条件判断をします.if条件elseでないと、プログラムコードを書くためのコードノンという判断はもう熟知しています.
これも簡単だと思います.ミックスif else条件判定文にtry catchを加えて文を処理することができます.try catchではどの対象も処理できますが、throwで間違った文を投げて、その対象またはその対象のエラーを投げます.今日はtry...catchだけを言います.次の例は配列、時間、プロトタイプ、関数、数字の種類など
function trycatch () {
var array = [234],
newdate = new Date(),
fun = function(){},
is = 12.22,
call;
try{
throw array + '
' + newdate.toLocaleString() + '
' + fun.prototype.constructor +
'
' + (typeof is == 'number') +'
' + call ; // local 'e'
}
catch(e){
console.log(e);
}
finally{
console.log('err finally');
}
}
trycatch ()
// :
// 234
// 2015/10/12 10:07:03
// function (){}
// true
// undefined
正確に言えば、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は出力した結果です. //new finally
function 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ブロックのコードも例外を投げることができるので)は、「外部」ブロックに捕獲されます.
以上が本文の全部です.javascriptプログラムの設計を勉強するのに役に立ちます.