자바스크립트 함수에서의 오류 처리 (Error Handling in Functions)

오류 처리는 프로그래밍에서 매우 중요한 부분입니다. 오류가 발생할 수 있는 상황을 고려하지 않으면 예기치 못한 동작이 발생할 수 있고, 프로그램의 안정성이 저하될 수 있습니다. 자바스크립트에서도 함수에서의 오류 처리는 필수적인 과정입니다. 이번 블로그에서는 자바스크립트 함수에서의 오류 처리 방법에 대해 알아보겠습니다.

try-catch 문

자바스크립트에서는 try-catch문을 사용하여 함수에서 발생하는 오류를 처리할 수 있습니다. try 블록 안에 오류가 발생할 수 있는 코드를 작성하고, catch 블록 안에 발생한 오류를 처리하는 코드를 작성합니다.

function divide(a, b) {
  try {
    if (b === 0) {
      throw new Error("Divide by zero error");
    }
    return a / b;
  } catch (error) {
    console.error("An error occurred:", error.message);
  }
}

console.log(divide(6, 2));   // Output: 3
console.log(divide(10, 0));  // Output: An error occurred: Divide by zero error

위의 예시에서 divide 함수는 b가 0일 경우 Divide by zero error라는 오류를 발생시킵니다. 이때 catch 블록에서 이 오류를 처리하고 메시지를 출력합니다.

오류 객체

자바스크립트에서 오류는 Error 객체로 표현됩니다. Error 객체에는 namemessage라는 두 가지 속성이 있습니다. name 속성은 오류의 이름을, message 속성은 오류에 대한 추가적인 설명을 담고 있습니다. throw 키워드를 사용하여 오류 객체를 생성하고 발생시킬 수 있습니다.

function sayHello(name) {
  try {
    if (!name) {
      throw new Error("Invalid argument: name is required");
    }
    console.log("Hello, " + name);
  } catch (error) {
    console.error("An error occurred:", error.message);
  }
}

sayHello("Alice");   // Output: Hello, Alice
sayHello();          // Output: An error occurred: Invalid argument: name is required

위의 예시에서 sayHello 함수는 name이 주어지지 않은 경우 Invalid argument: name is required라는 오류를 발생시킵니다. catch 블록에서 이 오류를 처리하고 메시지를 출력합니다.

예외 전파

오류가 발생한 함수에서 catch 블록 안에서 오류를 처리하지 않고 그대로 전파할 수도 있습니다. 이 경우에는 호출한 함수가 오류를 처리하게 됩니다. 예외를 전파할 때는 throw 키워드만 사용하면 됩니다.

function getUserName() {
  let name = prompt("Please enter your name:");
  if (!name) {
    throw new Error("Invalid input: name is required");
  }
  return name;
}

function sayHello() {
  try {
    let name = getUserName();
    console.log("Hello, " + name);
  } catch (error) {
    console.error("An error occurred:", error.message);
  }
}

sayHello();   // Output: An error occurred: Invalid input: name is required

위의 예시에서 getUserName 함수에서 오류가 발생한 경우, catch 블록안에서 오류를 처리하지 않고 그대로 전파합니다. 따라서 sayHello 함수에서 오류를 처리하게 됩니다.

결론

자바스크립트 함수에서 오류 처리는 예기치 못한 상황에서의 동작을 지정하고 프로그램의 안정성을 높이기 위해 필수적입니다. try-catch문을 사용하여 함수에서 발생하는 오류를 처리할 수 있고, 필요에 따라 오류를 생성하여 예외를 발생시킬 수도 있습니다. 적절한 오류 처리를 통해 안정성이 높은 자바스크립트 프로그램을 개발할 수 있습니다.