Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 오류 이름(Error Name) 값 총정리: 종류별 설명과 예제 코드

JavaScript에서 오류 이름(error name) 값은 발생한 오류의 이름을 설정하거나 반환하는 데 사용됩니다. err.name 속성을 활용하면 try-catch 문에서 잡힌 오류가 어떤 유형인지 정확하게 파악할 수 있습니다.

JavaScript의 오류 이름 종류

오류 이름은 아래 표와 같이 여섯 가지 값 중 하나를 반환할 수 있습니다.

번호오류 이름 및 설명
1EvalError
eval() 함수 실행 중 발생하는 오류를 나타냅니다.
2RangeError
숫자 값이 유효 범위를 벗어날 때 발생합니다. 예를 들어 배열 길이에 음수를 지정하는 경우입니다.
3ReferenceError
잘못된(유효하지 않은) 참조가 발생했을 때 나타납니다. 대표적인 예는 선언되지 않은 변수를 사용하는 경우입니다.
4SyntaxError
코드에 문법 오류가 있을 때 발생합니다.
5TypeError
값이 기대한 자료형이 아닐 때 발생합니다. 예를 들어 숫자가 아닌 값을 다루는 함수에 잘못된 타입을 전달하는 경우입니다.
6URIError
encodeURI() 또는 decodeURI() 함수 사용 중 잘못된 인자가 전달되면 발생합니다.

예제 코드

다음은 JavaScript에서 오류 이름 값을 확인하는 전체 예제 코드입니다. 이 예제는 변수가 정의되기 전에 해당 변수를 호출하여 ReferenceError를 유발하고, catch 블록에서 오류 이름을 출력합니다.

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
    body {
        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    }
    .result {
        font-size: 20px;
        font-weight: 500;
    }
</style>
</head>
<body>
<h1>JavaScript 오류 이름 값</h1>
<div style="color: green;" class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>
위 버튼을 클릭하면 정의되기 전의 변수를 호출합니다.
</h3>
<script>
    let resEle = document.querySelector(".result");
    document.querySelector(".Btn").addEventListener("click", () => {
        try {
            resEle.innerHTML = a;
        }
        catch (err) {
            resEle.innerHTML = "Error name = " + err.name;
        }
        let a = 44;
    });
</script>
</body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 화면이 출력됩니다.

JavaScript 오류 이름(Error Name) 값 총정리: 종류별 설명과 예제 코드

'CLICK HERE' 버튼을 클릭하면, 아직 정의되지 않은 변수 a를 참조하려다 ReferenceError가 발생하고, catch 블록이 이를 잡아 다음 결과를 화면에 표시합니다.

JavaScript 오류 이름(Error Name) 값 총정리: 종류별 설명과 예제 코드

정리

JavaScript의 오류 이름 값은 EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError 여섯 가지입니다. try-catch 문과 함께 err.name을 활용하면 오류의 원인을 빠르게 식별하고, 오류 유형에 따라 적절한 예외 처리 로직을 구현할 수 있습니다.