예외 처리

2023. 1. 18. 16:40Javascript/TCP school

예외(exception)

프로그램이 실행 중에 발생하는 런타임 오류

이러한 예외가 발생하지 않도록 미리 방지하는 것도 중요하지만, 발생한 예외를 처리하는 방법 또한 매우 중요

 

오류(error) - 프로그램 구문의 문법적인 오류

예외 발생

예외를 발생시킨다는 것은 명시적으로 오류를 발생시킨다는 의미뿐만 아니라 예외 상황을 알린다는 의미도 있음

자바스크립트에서는 throw 키워드를 사용하여 예외를 발생시킬 수 있음

문법
throw 표현식;

표현식에는 예외 코드를 나타내는 숫자나 오류 메시지를 담고 있는 문자열, Error 객체 등이 올 수 있음


예외 처리(exception handling)

자바스크립트에서는 프로그램이 실행되는 도중 발생하는 예외를 처리하기 위해 try / catch / finally 문을 사용

문법
try {
    예외를 처리하길 원하는 실행 코드;
} catch (ex) {
    예외가 발생할 경우에 실행될 코드;
} finally {
    try 블록이 종료되면 무조건 실행될 코드;
}

1. try 블록 : 기본적으로 맨 먼저 실행되는 코드이며, 여기에서 발생한 예외는 catch 블록에서 처리될 수 있음

2. catch 블록 : try 블록에서 발생한 예외 코드나 Error 객체를 인수로 전달받아 그 처리를 담당함

3. finally 블록 : 이 블록은 try 블록에서 예외가 발생하건 안 하건 맨 마지막에 무조건 실행됨

 

catch 블록과 finally 블록은 선택적인 옵션으로 반드시 사용할 필요는 없음

따라서 사용할 수 있는 모든 적합한 try 구문은 다음과 같음

 
적합한 try 구문

1. try / catch

2. try / finally

3. try / catch / finally


Error 객체

자바스크립트에서는 런타임 오류가 발생할 때마다 Error 객체의 인스턴스가 만들어져 해당 오류의 정보를 저장

 
예제
var btn = document.getElementById("throwExBtn");      // 아이디가 "throwExBtn"인 요소를 선택함.
btn.addEventListener("click", throwEx);               // 선택한 요소에 click 이벤트 리스너를 등록함.
function throwEx() {
    try {
        throw new Error("직접 발생시킨 오류입니다!"); // Error 객체를 사용해 명시적으로 오류를 발생시킴.
    } catch (ex) { // 발생된 오류를 매개변수 ex로 접근할 수 있음.
        document.getElementById("text").innerHTML = ex.name + "<br>"; // name 프로퍼티는 오류의 타입을 저장함.
        document.getElementById("text").innerHTML += ex.message;   // message 프로퍼티는 오류 메시지를 저장함.
    }
}

코딩연습 ▶

 

참고

'Javascript > TCP school' 카테고리의 다른 글

정규 표현식의 응용  (0) 2023.01.20
Strict 모드  (0) 2023.01.19
이벤트 리스너 호출  (0) 2023.01.18
이벤트 리스너 등록  (0) 2023.01.16
이벤트의 개념  (0) 2023.01.16