자바스크립트 try catch 란?
자바스크립트의 try catch는 예외(exception) 처리를 위한 구문으로, 프로그램 실행 중에 예상하지 못한 상황이 발생했을 때 이에 대응하는 방법을 제공합니다. 이 구문은 코드 블록을 감싸고, 예외가 발생하면 프로그램의 흐름을 제어하여 예외를 적절히 처리할 수 있게 해줍니다.
try catch 문 구조
자바스크립트에서 예외 처리는 try, catch, finally로 이루어진 구조를 가지고 있습니다.
try {
// 예외가 발생할 수 있는 코드
} catch (error) {
// 예외가 발생했을 때 실행되는 코드
} finally {
// 항상 실행되어야 하는 코드 (옵션)
}
JavaScript- try: 예외가 발생할 수 있는 부분을 시도해보는 블록입니다. 이 블록 내에서 예외가 발생하면 즉시 프로그램의 제어 흐름이 catch 블록으로 이동합니다.
- catch: try 블록에서 예외가 발생하면 실행되는 블록입니다. 여기에는 예외를 처리하고 관련된 코드를 작성할 수 있습니다.
- finally: 예외 발생 여부와 상관없이 항상 실행되는 블록입니다. 주로 리소스의 정리 또는 마무리 코드를 작성하는 데 사용됩니다. finally 블록은 선택적으로 사용할 수 있습니다.
try catch 문 throw
try-catch 구문에서 throw는 예외를 발생 시키는 키워드입니다. throw 키워드는 try 블록 내에서 사용되어, 직접 예외를 발생 시킬 수 있도록 합니다. throw 다음에는 일반적으로 Error 객체나 그 하위 객체를 전달하며, 이 객체는 예외에 대한 정보를 담고 있습니다. 예외 객체는 catch 블록에서 파라미터로 받을 수 있습니다.
예외의 명시성
throw를 사용하면 개발자가 의도적으로 예외를 발생 시킬 수 있습니다. 이로써 코드의 가독성이 향상되며, 특정 조건에서 어떤 예외가 발생했는지 명확하게 확인할 수 있습니다.
// throw를 사용한 경우
if (condition) {
throw new Error("이것은 예외입니다.");
}
// throw를 사용하지 않은 경우
if (condition) {
// 예외가 발생하는지 여부가 명시적으로 드러나지 않음
}
JavaScript커스텀 에러 메시지
throw를 사용하면 발생 시킬 예외에 커스텀한 에러 메시지를 포함 시킬 수 있습니다. 이는 디버깅과 예외 처리에 도움이 됩니다.
// throw를 사용한 경우
throw new Error("이것은 예외입니다.");
// throw를 사용하지 않은 경우
// 예외 메시지가 기본적으로 제공되며 명시적인 내용이 없을 수 있음
JavaScripttry catch 문 예제
간단한 예제를 통해 try-catch 문의 사용법을 알아보겠습니다.
function divide(a, b) {
try {
if (b === 0) {
throw new Error("0으로 나눌 수 없습니다.");
}
return a / b;
} catch (error) {
console.error("에러 발생:", error.message);
} finally {
console.log("나눗셈 시도 완료");
}
}
console.log(divide(10, 2)); // 정상 실행
console.log(divide(5, 0)); // 예외 발생
JavaScript- 이 예제에서는 나눗셈 함수를 정의하고, 나누는 값이 0일 경우 예외를 발생 시켜 catch 블록에서 처리하고, finally 블록에서는 항상 실행되어야 하는 코드를 작성했습니다.
- if (b === 0) 조건이 참이 되면 throw new Error(“0으로 나눌 수 없습니다.”); 부분이 실행되어 예외가 발생합니다. 이 예외는 catch 블록에서 error라는 변수로 받아지고, 에러 메시지가 출력됩니다.
이번에는 사용자로부터 숫자를 입력 받아 나눗셈을 수행하는 예제 입니다.
function divideNumbers() {
try {
// 사용자로부터 숫자 입력 받기
let numerator = parseFloat(prompt("나눠질 숫자를 입력하세요:"));
let denominator = parseFloat(prompt("나누는 숫자를 입력하세요:"));
// 입력값이 유효한지 확인
if (isNaN(numerator) || isNaN(denominator)) {
throw new Error("올바른 숫자를 입력하세요.");
}
// 나눗셈 수행
let result = numerator / denominator;
// 결과 출력
console.log(`나눗셈 결과: ${result}`);
} catch (error) {
// 예외 발생 시 처리
console.error("에러 발생:", error.message);
} finally {
// 항상 실행되는 블록
console.log("나눗셈 시도 완료");
}
}
// 사용 예제
divideNumbers();
JavaScript- 이 예제에서는 try 블록에서 사용자로부터 입력 받은 숫자로 나눗셈을 시도하고, 예외가 발생하면 catch 블록에서 해당 예외를 처리합니다.
- 사용자가 올바르지 않은 입력을 했을 때 (isNaN 함수를 통한 확인), 사용자에게 오류 메시지를 띄우고 예외를 발생 시킵니다.
- finally 블록은 항상 실행되므로, 나눗셈 시도의 성공 여부와 상관없이 마무리 작업을 수행할 수 있습니다.
결론
자바스크립트에서 예외 처리는 안정성을 높이고 예상치 못한 상황에 대비할 수 있는 도구입니다. try-catch 문은 코드의 안정성을 높이는 데 큰 역할을 하며, 예외 처리를 통해 프로그램이 예상치 못한 오류에도 유연하게 대처할 수 있습니다. 적절한 예외 처리는 코드의 가독성을 높이고 유지보수를 쉽게 만듭니다. 따라서 개발자들은 자주 발생할 수 있는 예외 상황을 고려하여 적절한 예외 처리를 구현하는 것이 중요합니다.