인프런 자바스크립트 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.
Error(try, catch, finally)
- try-catch
<기본 개념>
try { consol.log("log메시지"); //error code }catch(err) { console.log(err.name); // 결과 : ReferenceError console.log(err.message); // 결과 : consol is not defined } console.log("log 정상 메시지"); // 결과 : log 정상 메시지 //try{ }에 에러가 발생하면, catch{ }로 가서 코드를 실행한다. //만약 try{ }에 에러가 없다면, 그대로 try{ }의 코드가 실행된다. //원래 위의 code에서 에러가 발생하면, 그 다음 code는 실행되지 않는다. //하지만 try-catch문을 사용할 경우에는 위의 code에서 에러가 발생해도, //에러의 상태를 알려준 후에 그 다음 code를 실행한다. //즉, 에러가 발생할 수 있는 code를 try-catch문을 통해 작성할 경우, //해당 부분에서 에러가 발생하더라도 전체 code가 실행되지 않는 문제를 방지할 수 있다.
<참고>var x = ""; try { if(x == "") throw "empty"; }catch(err) { console.log(`x is ${err}`); } //throw를 사용하면 try{ }에서 강제로 에러 처리를 하여, //곧 바로 catch{ }이 실행되도록 한다. //이 경우, catch{ }의 parameter에 문자열로 원하는 메시지를 줄 수 있다.(ex empty)
- try-catch-finally
<기본 개념>
//에러가 발생한 경우 var x = ""; try { if(x == "") throw "empty"; //에러 발생(x가 ""이기 때문) : throw 사용 var y = x + 3; console.log(y); }catch(err) { console.log(`x is ${err}`); }finally { console.log("에러의 발생여부와 관계없이 마지막에 반드시 실행됨") } // 결과 : //x is empty //에러의 발생여부와 관계없이 마지막에 반드시 실행됨 //에러가 발생하지 않는 경우 var x = 5; try { if(x == "") throw "empty"; //에러 발생X(x가 5이기 때문) : throw 사용 var y = x + 3; console.log(y); }catch(err) { console.log(`x is ${err}`); }finally { console.log("에러의 발생여부와 관계없이 마지막에 반드시 실행됨") } // 결과 : //8 //에러의 발생여부와 관계없이 마지막에 반드시 실행됨 //정리 //finally{ }은 try{ }에서 에러가 발생하는 여부와 관계없이, //마지막에 무조건 실행된다. //즉, try{ }에서 에러가 발생하여 throw를 통해 catch{ }가 실행이 되든, //try{ }에서 에러가 발생하지 않아 그대로 try{ }가 실행되든 상관없이, //마지막에는 반드시 finally{ }가 실행된다.
'Javascript' 카테고리의 다른 글
Javascript - 정규식(RegExp) (0) | 2021.10.02 |
---|---|
Javascript - Strict Mode (0) | 2021.10.01 |
Javascript - 클래스(Class) (0) | 2021.10.01 |
Javascript - 모듈(Module) (0) | 2021.10.01 |
Javascript - Async/Await (0) | 2021.10.01 |
댓글