자바스크립트 - 오류 및 예외 처리
안녕하세요, 미래의 자바스크립트 마법사 여러분! ? 우리가 자바스크립트의 오류 처리 세계로 떠나는 흥미로운 여정에 환영합니다. 여러분의 친절한 이웃 컴퓨터 선생님으로서, 저는 이 모험을 안내해드리겠습니다. 그러니 안전벨트를 채우고, 함께 빠져보겠습니다!
오류란 무엇인가요?
상상해보세요, 케이크를 만들 때 ?, 실수로 소금 대신 설탕을 사용하는 경우. 그것이 오류입니다! 프로그래밍에서 오류는 비슷합니다 - 코드가 실행될 때 발생하는 예상치 못한 문제입니다. 이것은 타이포, 논리적 실수, 또는 사용하는 데이터에 문제가 있을 수 있습니다.
여기 자바스크립트에서 오류의 간단한 예제가 있습니다:
console.log(Hello, World!);
이 코드를 실행하면 오류가 발생합니다.因为我们忘记了在文本周围加上引号。 자바스크립트는 문자열이引号로 감싸여 있기를 기대합니다.
오류 처리란 무엇인가요?
오류 처리는 타 tightrope를 걸을 때의 안전망과 같습니다. 코드에서 오류를 부드럽게 관리하여, 무언가가 잘못되었을 때 전체 프로그램이崩溃하는 것을 방지하는 방법입니다.
try...catch...finally 문
try...catch...finally
문은 자바스크립트에서 오류를 처리하는 주요 도구입니다. 마치 슈퍼히어로 트리오가 구조에 오는 것처럼! ?♀️?♂️?♀️
다음과 같이 작동합니다:
try {
// 오류를 유발할 수 있는 코드
let result = 10 / 0;
console.log(result);
} catch (error) {
// 오류를 처리하는 코드
console.log("Oops! An error occurred:", error.message);
} finally {
// 오류가 발생했든 안 발생했든 항상 실행되는 코드
console.log("This always runs!");
}
이 예제에서:
-
try
블록은 오류를 유발할 수 있는 코드를 포함합니다 (0으로 나누기). - 오류가 발생하면
catch
블록이 그것을 잡아 부드럽게 처리합니다. -
finally
블록은 오류가 발생했든 안 발생했든 항상 실행됩니다.
throw 문
때로는 우리 자신이 커스텀 오류를 생성하고 싶을 때가 있습니다. 그때 throw
문이 유용하게 쓰입니다. 마치 경기에서 심판이 페널티를 부르는 것처럼! ?
다음은 예제입니다:
function checkAge(age) {
if (age < 0) {
throw new Error("Age cannot be negative!");
}
console.log("Age is valid:", age);
}
try {
checkAge(-5);
} catch (error) {
console.log("Caught an error:", error.message);
}
이 코드에서는 음수 연령을 사용하려고 시도할 때 커스텀 오류를 던집니다. catch
블록은 이 오류를 처리합니다.
onerror 이벤트 핸들러 속성
onerror
이벤트 핸들러는 여러분의 전체 자바스크립트 애플리케이션을 지키는 깨어 있는 보호자와 같습니다. 코드 어디서 발생한 오류를 잡습니다.
다음과 같이 사용할 수 있습니다:
window.onerror = function(message, source, lineno, colno, error) {
console.log("An error occurred:");
console.log("Message:", message);
console.log("Source:", source);
console.log("Line:", lineno);
console.log("Column:", colno);
console.log("Error object:", error);
return true;
};
// 이 코드는 onerror 핸들러를 트리거합니다
nonExistentFunction();
이 코드는 전역 오류 핸들러를 설정하여 애플리케이션 내에서 발생한 모든未捕捉 오류를 잡습니다.
자바스크립트 오류 객체 참조
자바스크립트는 여러 가지 내장된 오류 유형을 제공합니다. 이를 간단한 표로 정리해보겠습니다:
오류 유형 | 설명 |
---|---|
Error | 일반 오류 유형 |
SyntaxError | 코드에 문법 오류가 있을 때 발생 |
ReferenceError | 존재하지 않는 변수를 참조할 때 발생 |
TypeError | 값이 기대하는 유형과 다를 때 발생 |
RangeError | 숫자가 허용 범위 밖에 있을 때 발생 |
URIError | 잘못된 URI 함수를 사용할 때 발생 |
EvalError |
eval() 함수와 관련된 오류가 발생 |
다음은 이러한 오류들이 어떻게 발생할 수 있는 예제입니다:
try {
// SyntaxError
eval("Hello World");
// ReferenceError
console.log(undefinedVariable);
// TypeError
null.f();
// RangeError
let arr = new Array(-1);
// URIError
decodeURIComponent("%");
} catch (error) {
console.log(error.name + ": " + error.message);
}
이 각 줄은 다른 유형의 오류를 발생시키며, catch
블록이 이를 처리합니다.
그렇습니다, 제 사랑하는 학생들이여! 우리는 자바스크립트 오류 처리의 땅을 여행했습니다. 오류는 적이 아닙니다 - 코드를 개선하는 데 유용한 피드백입니다. 이를 받아들이고 배우며, 곧 오류를 처리하는 프로가 될 것입니다! ?
계속 코딩하고, 배우고, 그 과정에서 즐겁게 하세요! 다음 수업에서 뵙겠습니다! ?
Credits: Image by storyset