try-catch

이재은·2025년 5월 2일

JacaScript 코드에서 오류거 발생하면 프로그램을 즉시 중단하고 콘솔에 에러 메세지를 출력한다.
이때 try-catch 구문을 사용하면 오류를 감지하고 적절히 처리하여 프로그램 흐름을 유지할 수 있다.

try {
// 오류 발생 가능성이 있는 코드
} catch (error) {
// 오류 발생 시 실행할 코드
} finally {
// 선택: 오류 발생 여부와 관계없이 항상 실행되는 코드
}

  • try : 오류 발생 가능성이 있는 코드를 작성
  • catch : 예외 발생 시 실행. error객체를 통해 오류 정보 확인 가능
  • finally : 생략 가능. 정리 작업, 상태 초기화 등 용도로 사용

!! try다음에는 catch,finally 중 하나는 반드시 필요하며, 둘 다 함께 사용할 수도 있다.

try-catch 구문은 오류가 발생해도 앱이 종료되지 않고 흐름을 유지할 수 있고 오류 메세지를 받아 디버깅 정보를 확인할 수 있다.
사용자에게 안내 메세지를 제공하거나 대체 동작 수행 가능하다.

finally를 통해 정리 작업 또는 리소스 해제 수행 가능하다.

finally 구문은 예외 발생 여부와 관계없이 항상 마지막에 실행되는 블록이다.
주로 로딩 상태 초기화, 서버 연결 해제, 파일 핸들러/스트림 등 리소스 반환, 상태 플래그 정리에 사용된다.

예외 객체(error 객체)

: try블록에서 오류가 발생하면, JavaScript는 자동으로 에러객체를 생성하여 catch 블록으로 전달한다.
이 객체를 통해 에러의 종류, 메세지, 발생 위치 등 상세정보를 확인할 수 있다.

try {
throw new TypeError("데이터 형식이 잘못되었습니다");
} catch (error) {
console.error(error.name); // TypeError
console.error(error.message); // 데이터 형식이 잘못되었습니다
console.error(error.stack); // 오류 발생 위치와 호출 스택 정보
}

-error.name : 에러의 종류를 문자열로 반환한다.(TypeError, ReferenceError, SyntaxError 등)

-error.message : 에러가 발생 시 설명 메세지이다.

-error.stack : 에러가 발생한 위치와 함수 호출 흐름을 문자열로 담고 있으며, 디버깅 시 유용하다.

catch 매개변수 작성 방식

catch 블록의 괄호 안에는 오류 정보를 담을 변수명을 지정할 수 있다.
이 매개변수는 try블록에서 발생한 예외 객체를 자동으로 전달 받는다.

try {
// 오류 발생 코드
} catch (error) {
console.error(error.message);
}

변수명은 자유롭게 설정할 수 있으며 일반적으로 error로 사용된다.

ES2019부터 예외 객체를 사용하지 않을 때 변수명 생략이 가능해졌지만,
대부분의 경우 예외 객체의 정보를 활용해야 하므로, 변수명을 생략하지 않고 명시하는 것이 일반적이다.

throw 구문

throw 키워드를 사용하면 개발자가 직접 오류를 발생시켜 흐름을 catch로 넘길 수 있다.
예외 상황을 표시하는 것뿐만이 아닌 프로그램이 비상적인 흐름으로 진행되지 않도록 명확하게 제어할 수 있는 강력한 수단이다.
-잘못된 사용자 입력이 들어온 경우
-함수 인자 조건이 맞지 않는 경우
-서버 응답이 null,undefined인 경우
-내부 로직이 예외적인 상태인 경우
사용된다.

profile
조각 레몬

0개의 댓글