자바스크립트 기본 문법 – 오류 처리 – 3 – 에러 객체
1. 에러 객체란?
에러 객체(Error object)는 자바스크립트에서 오류가 발생했을 때 생성되는 객체입니다. 이 객체는 발생한 오류에 대한 정보를 제공하며, 오류 처리와 디버깅에 도움을 줍니다.
2. 에러 객체의 속성과 메서드
에러 객체는 여러 가지 속성과 메서드를 가지고 있습니다. 이를 통해 오류의 세부 정보를 확인하고 처리할 수 있습니다.
(1) name 속성
name
속성은 발생한 오류의 이름을 나타냅니다. 일반적인 오류 이름으로는 Error
, TypeError
, ReferenceError
, SyntaxError
등이 있습니다. 예를 들어, TypeError
오류가 발생했다면 name
속성은 “TypeError”라는 값을 가지게 됩니다.
(2) message 속성
message
속성은 발생한 오류에 대한 메시지를 담고 있습니다. 이 메시지는 오류의 원인과 관련된 정보를 포함하고 있습니다. 예를 들어, “TypeError: Cannot read property ‘undefinedProperty’ of null”라는 오류 메시지에서는 'undefinedProperty' of null
이 부분이 메시지입니다.
(3) stack 속성
stack
속성은 오류가 발생한 곳의 호출 스택(call stack)을 나타내는 문자열입니다. 이는 디버깅 시에 오류가 어디에서 발생했는지 추적하는 데 도움을 줍니다.
(4) toString() 메서드
toString()
메서드는 에러 객체를 문자열로 변환하여 반환합니다. 기본적으로 name: message
형태로 변환됩니다. 예를 들어, TypeError: Cannot read property 'undefinedProperty' of null
라는 에러 객체를 toString()
메서드로 변환하면 "TypeError: Cannot read property 'undefinedProperty' of null"
이라는 문자열이 반환됩니다.
(5) 예시
아래의 코드 예시를 통해 에러 객체의 속성과 메서드를 살펴보겠습니다.
try {
// 오류 발생 가능성이 있는 코드
const undefinedVariable = someFunction();
} catch (error) {
console.log(error.name); // "ReferenceError"
console.log(error.message); // "someFunction is not defined"
console.log(error.stack); // 오류 발생 위치의 호출 스택 정보
console.log(error.toString());// "ReferenceError: someFunction is not defined"
}
3. 에러 객체 활용하기
에러 객체는 주로 오류 처리와 디버깅에 사용됩니다. 예외 처리(try-catch 문)를 사용하여 코드에서 발생한 오류를 잡고, 에러 객체를 통해 오류에 대한 정보를 출력하거나 다른 처리를 할 수 있습니다.
(1) 예외 처리 (try-catch 문)
예외 처리는 코드 블록 안에서 발생한 오류를 잡아내고, 오류에 대한 대응을 할 수 있는 기능입니다. try
블록 안에서 오류가 발생하면 catch
블록으로 이동하여 오류를 처리합니다.
try {
// 오류 발생 가능성이 있는 코드
} catch (error) {
// 오류 처리 코드
}
(2) 예시
아래의 예시를 통해 예외 처리와 에러 객체를 활용하는 방법을 알아보겠습니다.
try {
const num = 10;
num.toUpperCase(); // TypeError: num.toUpperCase is not a function
} catch (error) {
console.log(error.name); // "TypeError"
console.log(error.message); // "num.toUpperCase is not a function"
console.log("에러가 발생했습니다!"); // 에러 메시지 대신 사용자 정의 메시지 출력
}
위 예시에서는 toUpperCase()
메서드를 숫자에 적용하려고 하여 TypeError
오류가 발생합니다. catch
블록에서는 에러 객체의 속성을 출력하고, 사용자 정의 메시지를 출력하는 것을 확인할 수 있습니다.
4. 주의해야 할 점
- 오류 객체의 속성과 메서드를 사용할 때, 해당 속성과 메서드가 모든 브라우저에서 지원되지는 않을 수 있으므로 호환성을 고려해야 합니다.
- 에러 객체를 사용하여 오류를 추적하고 디버깅할 때,
stack
속성은 보안과 관련된 이유로 일부 브라우저에서는 접근이 제한될 수 있습니다.
자바스크립트 기본 문법 – 오류 처리 – 3 – 에러 객체에 대한 설명을 마쳤습니다. 에러 객체를 사용하여 코드의 오류를 처리하고, 오류에 대한 정보를 출력하며, 디버깅을 수행할 수 있습니다. 자바스크립트에서는 예외 처리를 통해 코드를 안전하게 실행하고, 에러 객체를 활용하여 오류에 대응하는 것이 중요합니다. 열심히 공부하시고, 자바스크립트 프로그래밍에서 오류 처리에 대한 실력을 키워나가시기 바랍니다!