예외 처리란?
예외 처리는 프로그램에서 발생할 수 있는 오류를 대응하는 방법을 의미합니다. 프로그램에서 발생하는 오류는 프로그래밍 언어에 따라 다를 수 있으며, JavaScript는 다음과 같은 이유로 오류가 발생할 수 있습니다.
- 구문 오류(SyntaxError): 세미콜론 또는 대괄호 누락으로 발생하는 오류입니다.
- 범위 오류(RangeError): 값이 표현할 수 있는 범위를 벗어나는 경우 발생하는 오류입니다.
- 참조 오류(ReferenceError): 존재하지 않는 변수에 값을 할당하는 경우 발생하는 오류입니다.
- 타입 오류(TypeError): 값이 예상한 결과와 다른 경우 발생하는 오류입니다.
- URIError:
endcodeURI()
또는decodeURI()
함수에 의해 발생하는 오류입니다.
그 외에도 숫자를 0으로 나누거나 네트워크 통신 중 네트워크 문제가 발생하거나 파일 업로드하는데 파일이 제거된 경우 등... 다양한 이유가 존재합니다.
이러한 오류가 발생하면 프로그램은 비정상적으로 동작하거나 실행되고 있던 코드가 중단되고 프로그램이 뻗을 수 있습니다.
JavaScript에서 예외를 처리하는 방법
위에서 예외란 무엇인지 설명했으며, 이제 예외를 처리하는 방법을 설명합니다. JavaScript는 try...catch...finally
또는 throw
명령문으로 예외를 처리합니다.
명령문 설명
- try: 예외가 발생할 수 있는 코드를 작성합니다.
- catch: try 문에서 예외가 발생한 경우 catch 문을 실행합니다. 예외를 대응하는 코드를 작성합니다.
- finally: 예외 상관없이 항상 실행되어야 하는 코드를 작성합니다.
- thorw: 개발자가 오류 또는 예외를 강제로 던져(throw)야 하는 경우 작성하는 명령문입니다.
다음은 try...catch
예제입니다. 아래 예제는 try 문에서 구문 오류가 발생하여 catch 문을 실행합니다.
function TestFunction() {
try {
console.llog('Test!');
} catch(error) {
console.error('catch start');
console.error("error: " + error.message);
}
}
TestFunction();
try 문에서 console.log()
를 console.llog()
로 잘못 입력했습니다. 위 코드는 의도적으로 작성된 코드이며, 구문 오류가 발생하여 catch 문이 실행되었습니다.
오류 객체의 속성
catch문의 매개변수에는 두 가지 속성이 존재하는데, 바로 name과 message 속성입니다.
- name: 어떠한 오류인지 이름을 제공합니다.
- message: 오류 메시지를 문자열로 반환합니다.
function TestFunction() {
try {
console.llog('Test!');
} catch(error) {
console.error("error name: " + error.name);
console.error("error message: " + error.message);
}
}
TestFunction();
다음은 try...catch...finally
예제입니다.
function TestFunction() {
try {
console.llog('Test!');
} catch(error) {
console.error('start catch');
console.error("error: " + error.message);
} finally {
console.log('finally start');
}
}
TestFunction();
finally 문은 try...catch
이후 실행되며, 예외가 있든 없든 항상 실행됩니다.
다음은 throw 명령문 예제입니다.
function TestFunction() {
try {
throw('call throw');
// 에러 메시지 정의하는 경우
// throw new Error('call throw');
} catch(error) {
console.error('start catch');
console.error("error: " + error.message);
} finally {
console.log('finally start');
}
}
TestFunction();
throw 문은 오류 또는 예외를 강제로 발생시킵니다. throw new Error(에러 내용)
와 같이 작성하면, 에러 객체의 메시지를 개발자가 지정할 수 있습니다.
'JavaScript > JavaScript 문법' 카테고리의 다른 글
[JavaScript]쿠키(Cookie) 사용 방법 (0) | 2022.02.04 |
---|---|
[JavaScript]URL 사용 방법 (0) | 2022.02.04 |
[JavaScript]파일 입출력 - FileReader 객체 (0) | 2022.01.25 |
[JavaScript]파일 업로드 구현 (0) | 2022.01.25 |
[JavaScript]exceljs 사용방법 및 엑셀 다운로드(내보내기) (0) | 2022.01.25 |
댓글