JavaScript 자바스크립트 try catch 예외처리 사용법

자바스크립트 try catch 란?

자바스크립트의 try catch는 예외(exception) 처리를 위한 구문으로, 프로그램 실행 중에 예상하지 못한 상황이 발생했을 때 이에 대응하는 방법을 제공합니다. 이 구문은 코드 블록을 감싸고, 예외가 발생하면 프로그램의 흐름을 제어하여 예외를 적절히 처리할 수 있게 해줍니다.

try catch 문 구조

자바스크립트에서 예외 처리는 try, catch, finally로 이루어진 구조를 가지고 있습니다.

JavaScript
try {
  // 예외가 발생할 수 있는 코드
} catch (error) {
  // 예외가 발생했을 때 실행되는 코드
} finally {
  // 항상 실행되어야 하는 코드 (옵션)
}
JavaScript
  • try: 예외가 발생할 수 있는 부분을 시도해보는 블록입니다. 이 블록 내에서 예외가 발생하면 즉시 프로그램의 제어 흐름이 catch 블록으로 이동합니다.
  • catch: try 블록에서 예외가 발생하면 실행되는 블록입니다. 여기에는 예외를 처리하고 관련된 코드를 작성할 수 있습니다.
  • finally: 예외 발생 여부와 상관없이 항상 실행되는 블록입니다. 주로 리소스의 정리 또는 마무리 코드를 작성하는 데 사용됩니다. finally 블록은 선택적으로 사용할 수 있습니다.

try catch 문 throw

try-catch 구문에서 throw는 예외를 발생 시키는 키워드입니다. throw 키워드는 try 블록 내에서 사용되어, 직접 예외를 발생 시킬 수 있도록 합니다. throw 다음에는 일반적으로 Error 객체나 그 하위 객체를 전달하며, 이 객체는 예외에 대한 정보를 담고 있습니다. 예외 객체는 catch 블록에서 파라미터로 받을 수 있습니다.

예외의 명시성

throw를 사용하면 개발자가 의도적으로 예외를 발생 시킬 수 있습니다. 이로써 코드의 가독성이 향상되며, 특정 조건에서 어떤 예외가 발생했는지 명확하게 확인할 수 있습니다.

JavaScript
// throw를 사용한 경우
if (condition) {
  throw new Error("이것은 예외입니다.");
}

// throw를 사용하지 않은 경우
if (condition) {
  // 예외가 발생하는지 여부가 명시적으로 드러나지 않음
}
JavaScript

커스텀 에러 메시지

throw를 사용하면 발생 시킬 예외에 커스텀한 에러 메시지를 포함 시킬 수 있습니다. 이는 디버깅과 예외 처리에 도움이 됩니다.

JavaScript
// throw를 사용한 경우
throw new Error("이것은 예외입니다.");

// throw를 사용하지 않은 경우
// 예외 메시지가 기본적으로 제공되며 명시적인 내용이 없을 수 있음
JavaScript

try catch 문 예제

간단한 예제를 통해 try-catch 문의 사용법을 알아보겠습니다.

JavaScript
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라는 변수로 받아지고, 에러 메시지가 출력됩니다.

이번에는 사용자로부터 숫자를 입력 받아 나눗셈을 수행하는 예제 입니다.

JavaScript
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 문은 코드의 안정성을 높이는 데 큰 역할을 하며, 예외 처리를 통해 프로그램이 예상치 못한 오류에도 유연하게 대처할 수 있습니다. 적절한 예외 처리는 코드의 가독성을 높이고 유지보수를 쉽게 만듭니다. 따라서 개발자들은 자주 발생할 수 있는 예외 상황을 고려하여 적절한 예외 처리를 구현하는 것이 중요합니다.

Leave a Comment