<그냥하자> JavaScript (28) 에러 핸들링 & 옵셔널 체이닝

.·2024년 8월 1일

출처 : 인프런 얄팍한 코딩사전

에러 핸들링 error handling 의 필요성

에러/에러 error 발생에 대비하지 않으면 프로그램이 종료됨

I. 자바스크립트의 에러 핸들링

  1. try ... catch 문

try 블록
에러 발생 여지가 있는 코드 포함
이곳에서 발생한 에러는 프로그램을 멈추지 않음

catch 블록
에러 발생시 실행할 코드 포함
발생한 오류 객체를 인자로 받음

  1. try ... catch ... finally 문

finally 블록
오류가 발생 여부와 관계없이 한 번 실행되는 코드 포함
아래와 같은 경우 널리 사용

try나 catch 문에 return이 있더라도 반드시 실행

II. Error 객체

Error 객체는 런타임 오류가 발생했을 때 던져집니다. Error 객체를 사용자 지정 예외의 기반 객체로 사용할 수도 있습니다. 아래 표준 내장 오류 유형을 참고하세요. 출처 : MDN 문서

에러 발생 시 던져지는 thrown 객체
에러에 대한 정보를 담고 있음 / 에러가 발생하지 않아도, 직접 생성하여 던지기 가능

  1. 기본 생성과 사용법

기본 인스턴스 프로퍼티와 메서드

의도적으로 에러 발생시키기

  1. 에러의 여러 종류

아래의 에러들은 모두 Error부터 상속받음

어떤 문제에 의한 에러인지 쉽게 식별 가능하도록 함

오류에 종류에 따라 대처하기

직접 오류를 생성하여 던지기
컴퓨터가 인지하지 못하는 에러 수동 발생

  1. 커스텀 에러 만들기


III. 에러 버블링 error bubbling

다른 함수를 호출했을 때

에러 발생시 해당 함수에서 잡지 않으면 호출한 곳으로 던져짐
다중 호출시 에러를 핸들링하는 코드가 있는 호출자까지 전달됨


에러는 가능한 발생 곳 가까이서 처리하는 것이 좋음

Eg) 사장 > 부장 > 대리 > 사원 단계로 일을 시켰을 때



?. - 옵셔널 체이닝 optional chaining 연산자

MDN 문서

호출 대상이 undefined나 null이어도 오류를 발생시키지 않음 - 대신 undefined 반환

있을지 없을지 모르는 것으로부터 값을 읽거나 실행할 때 사용

profile
해야 되는 일이 하고 싶은 일로

0개의 댓글