김민태 [참조사전 - 예외]

이동주·2021년 10월 25일

1. do exception

throw

: 사용자 정의의 예외 발생 코드
: 예외 발생시 현재 함수의 실행이 중지되고 throw 이후의 함수는 실행 x

function doException () {
    throw new Error('와우! 오류야!')
}

function main () {
    doException();
}

main();

던진 예외 코드(throw)를 아무데서도 받아주지 않아서 종료

2. try catch

function main () {
    try {
        doException();
    } catch (error) {
        console.log(error);
    } finally {
        console.log('done')
    }
}

=> 예외를 처리했다고 봄

try의 코드를 먼저 실행

  • 오류 발생
    catch 구문 실행(던진 오류를 받아줌) -> finally 구문 실행
  • 오류 없음
    catch 구문 생략 -> finally 구문 실행

=> finally 구문은 무조건 실행

오류가 없는 코드를 실행할 경우?

function noException () {
    return true;
}

function main () {
    try {
        noException();
    } catch (error) {
        console.log(error);
    } finally {
        console.log('done')
    }
}

main();

=> done만 출력

3. 예외 vs 반환값 확인

function callException (type) {
    if (type === "do") {
        doException();
    } else {
        noException();
    }
}

function main () {
    try {
        callException('do');
    } catch (error) {
        console.log(error);
    } finally {
        console.log('done')
    }
}

main();
profile
안녕하세요 이동주입니다

0개의 댓글