예외처리

김민재·2021년 6월 17일
0

Gotcha JavaScript!

목록 보기
38/45

예외 처리의 필요성

  • 프로그램의 외부 요인으로 프로그램의 특정 파트가 정상적으로 동작하지 않을 수 있으나, 에러처리를 이용하면 프로그램이 정상적으로 실행될 수 있다.
  • 예외처리 과정?
    -JS에서 throw 명령을 통해 에러를 발생시키고 Try, Catch구문을 통해 해당 에러를 받아서 에러를 핸덜링한다.

Try, Catch, Finally 구문

  • 에러 처리 블록은 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>

profile
자기 신뢰의 힘을 믿고 실천하는 개발자가 되고자합니다.

0개의 댓글