例外処理例
8401 ワード
if&else構文とtry&catch構文の違いは何ですか?
try、catch構文は、呼び出された関数でエラーが発生しても関数を呼び出すために使用されます.
エラーを発見できる利点があります.
例1>
<script>
function errFunc() {
throw "error";
console.log("this code will not be executed")
}
try{
console.log("try -1")
errFunc();
console.log("try -2")
}
catch(e) {
console.log("catch error : ", e)
}
finally {
console.log("fianlly -this code will always be executed")
}
</script>
1.try構文でのコードの実行
//try-1出力
2. errFunc();errFunc()を参照してください.中にはthrow文があります
throw文に遭遇すると、jsは最近のcatchブロックを検索します.
したがって、関数が呼び出された場所で最近のcatch文を検索し、コードを実行します.
//catch error: error
4.最後に、コードはfinallyブロックで実行され、終了する.
//fianlly -this code will always be executed
例2>
<script>
function errFunc() {
throw "error";
console.log("this code will not be executed")
}
function func(){
try{
console.log("function -1")
errFunc();
console.log("function -2")
}
catch(e) {
console.log("catch error in function: ", e)
}
finally {
console.log("fianlly in function -this code will always be executed")
}
}
try{
console.log("try -1")
func();
console.log("try -2")
}
catch(e) {
console.log("catch error : ", e)
}
finally {
console.log("fianlly -this code will always be executed")
}
</script>
1.try-1とfnication-1、errFunc()を呼び出します.よびだし
//try -1, fnuction -1
2.throwコマンドに遭遇し、errFuncを呼び出す部分として最近のcatchブロックを見つけ、そこでcatchブロックを検索して実行します.
//catch error in fuction : error
3.finallyブロックを実行します.
4.エラーが処理されたため、コードはcatchブロックを検索しなくなり、
正常に動作しfunc()を返し、try-2とfinallyを呼び出して終了します.
//try -2, fianlly -this code will always be executed
func()関数でcatch構文を削除したらどうなりますか?
1.throw構文に近いcatch構文を探しますが、
その前にfinally in funcionが実行されます.
2.func()を返し、catch文を再検索します.
3.最外面catcherror:error部分でエラーが処理されます.
4.finallyブロックコードを実行します.
5.try-2構文は実行されません.
Reference
この問題について(例外処理例), 我々は、より多くの情報をここで見つけました https://velog.io/@minj9_6/예외처리의-예시テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol