← Back to NOTES 🌰 ← Effective JavaScript 🤿
← 아이템 62 - 비동기 시퀀스를 위해 감싸지거나 이름이 지정된 콜백을 사용하라
동기 프로그래밍에서는 try...catch 블록으로 여러 함수의 오류를 한 번에 처리할 수 있다.
비동기 코드에서는 여러 단계의 프로세스가 주로 이벤트 큐의 별도의 턴으로 나누어지기 때문에 하나의 try 블록으로 모두를 감싸기가 불가능하다.
사실, 비동기식 API는 예외를 전혀 발생시키지도 못한다. 왜냐하면 비동기적인 에러가 발생했을 당시, 예외를 처리할 명백한 실행 컨텍스트가 없기 때문이다.
대신, 비동기 API는 콜백의 특수 인자로서 오류를 표현하거나, 추가적인 오류 처리 콜백 함수(또는 에러백)를 받아들인다.
try를 사용하면 '모든 오류를 잡아내는' 로직을 정의하기 쉽기 때문에 코드의 전 영역에서 오류를 처리하는 것을 잘 잊지 않는다.
비동기 API는 실행 단계 중 어디에서든 오류 처리를 제공하는 것을 깜빡하기가 매우 쉽다. 이로 인해 흔히 오류를 아무런 소리 없이 조용히 놓쳐버리게 된다. - 사용자 경험에도, 디버깅에도 매우 안 좋다.
비동기 API를 다룰 때는 모든 오류 조건을 명시적으로 처리하는지 항상 경계하고 확인해야 한다.