- 프로그램의 외부 요인으로 프로그램의 특정 파트가 정상적으로 동작하지 않을 수 있으나, 에러처리를 이용하면 프로그램이 정상적으로 실행될 수 있다.
- 예외처리 과정?
-JS에서 throw 명령을 통해 에러를 발생시키고 Try, Catch구문을 통해 해당 에러를 받아서 에러를 핸덜링한다.
- 에러 처리 블록은 Try, Catch, Finally 구문으로 구분된다.
<script> **try**{ // 정상적으로 실행되는 경우 실행될 코드 프로그램 작성한다. // try 블록안에서 에러가 발생한 경우 catch 블록으로 이동한다. } catch(e){ // try 블록에서 에러가 발생한 경우로 // 에러를 인자 e로 받아 에러를 처리하는 코드를 작성한다. } finally{ // try, catch구문이 실행되고 나서 항상 마지막에 실행될 코드이다. } - try 구문 안에서 호출한 함수 안에서 에러가 발생한 경우에도 catch로 이동해 프로그램이 실행된다. </script>
- 이 코드안에서 문제가 일어나 더 이상 코드를 실행하지 않고
에러를 핸들링하고 싶은 경우에는 throw 명령을 사용한다.- throw 명령어는 return 구문과 비슷하다.
에러를 나타낼 수 있는 catch블록에 전달할 인자(숫자나 문자, 에러가 왜 발생했는지 적는것도 좋다)를 사용한다.- 문자열, 숫자, 객체 등 javascript object를 자유롭게 활용 가능하다.
- throw 뒤에 넘긴 인자가 catch명령의 e로서 할당된다.
1> throw 발생 시, catch 구문을 찾아서 이동하게 된다.
2> 현재의 블록에서 catch, finally 구문이 없다면 상위 블록, 상위 함수(호출된 함수)로 이동한다.
3> try, finally 구문만 존재시, finally 구문은 실행되고, catch 될 수 있는 구문을 찾아 이동한다.
4> catch 구문을 찾으면 에러가 처리되고 해당 try, catch 구문 이후 코드가 실행된다.<script> try{ console.log("try -1") //try -1 throw "error"; console.log("try -2") //catch 구문 찾아 이동 } catch(e) { console.log("catch error : ", e) //catch error : error } finally { console.log("fianlly -this code will always be executed") } // fianlly -this code will always be executed // catch나 fianlly둘중 하나만 존재해도 실행된다. </script>