[JavaScript] try cath문 에러와 핸들링

ParkCode·2024년 3월 11일
0

자바스크립트

목록 보기
17/20

1. try…catch와 에러 핸들링

보통의 스크립트에서 에러가 발생하면 스크립트가 즉시 중단되고, 콘솔에 에러가 출력됩니다.
하지만 try-catch문은 프로그래밍에서 예외(에러)를 처리하는 데 사용되는 구문입니다. 예외는 프로그램 실행 중에 예상치 못한 상황이나 오류가 발생했을 때 발생하는데, 이를 적절히 처리하지 않으면 프로그램이 비정상적으로 종료될 수 있습니다. try-catch문은 이러한 예외를 감지하고 처리하는 데 도움을 줍니다.

기본적인 구조는 다음과 같습니다.

try {
    // 예외가 발생할 수 있는 코드
} catch (ExceptionType1 e1) {
    // ExceptionType1 예외를 처리하는 코드
} catch (ExceptionType2 e2) {
    // ExceptionType2 예외를 처리하는 코드
} finally {
    // 예외 발생 여부와 상관없이 항상 실행되는 코드 (선택적)
}
  • try 블록: 예외가 발생할 수 있는 코드를 포함하는 블록입니다. 이 블록 내에서 예외가 발생하면 해당 블록의 실행이 중단되고 즉시 catch 블록으로 이동합니다.
  • catch 블록: 예외를 처리하는 데 사용되는 블록입니다. 여러 개의 catch 블록이 사용될 수 있고, 각 블록은 특정 유형의 예외를 처리합니다. 예외가 발생하면 해당 유형의 catch 블록이 실행됩니다.
  • finally 블록 (선택적): 예외 발생 여부와 상관없이 항상 실행되는 블록입니다. 주로 리소스 해제나 정리 작업 등을 위해 사용됩니다.

2. try…catch 동작 알고리즘

  1. 먼저, try {...} 안의 코드가 실행됩니다.
  2. 에러가 없다면, try 안의 마지막 줄까지 실행되고, catch 블록은 건너뜁니다.
  3. 에러가 있다면, try 안 코드의 실행이 중단되고, catch(err) 블록으로 제어 흐름이 넘어갑니다. 변수 err(아무 이름이나 사용 가능)는 무슨 일이 일어났는지에 대한 설명이 담긴 에러 객체를 포함합니다.
try {
    // 예외가 발생할 수 있는 코드
    int result = 10 / 0; // 예외 발생 (ArithmeticException)
} catch (ArithmeticException e) {
    // ArithmeticException 예외를 처리하는 코드
    System.out.println("Cannot divide by zero.");
} finally {
    // 항상 실행되는 코드 (예외 발생 여부와 상관없이)
    System.out.println("Finally block executed.");
}

이러한 try-catch문을 사용하여 예외를 적절히 처리함으로써 프로그램의 안정성을 높일 수 있습니다.

3. catch문의 매개변수

catch문 안에는 error에 대한 매개변수를 지니고, 여기엔 에러에 대한 객체가 들어온다.
변수명은 우리가 임의로 설정 가능하다.

try {
  nonExistentFunction();
} catch (err) {
  console.error(err);
}

위 코드는 MDN에 예시로 있는 코드이다. 실행하면 콘솔창에 err에 대한 message가 나온다.

참조

모던 자바스크립트

profile
프론트엔드 개발자 지망생

0개의 댓글

관련 채용 정보