⊗jsSpACEx 158 of 294 menu

JavaScript에서 비동기 콜백의 예외 처리

make에 배열에 존재하지 않는 요소의 번호가 매개변수로 전달된 경우를 예외 상황이라고 가정합니다. 이미 알고 있듯이, 비동기 함수 내부에서 발생한 예외는 try-catch를 통해 잡을 수 없습니다. 우리의 경우, make 또는 콜백 내부에서 발생한 예외는 잡히지 않습니다:

try { make(10, function(res) { console.log(res); }); } catch(err) { // 잡히지 않음 }

콜백 방식에서는 예외를 다음과 같이 처리합니다: 콜백의 첫 번째 매개변수에 결과를, 두 번째 매개변수에 오류를 보냅니다. 이 경우 오류 처리는 다음과 같이 이루어집니다:

make(10, function(res, err) { if (!err) { console.log(res); // 오류가 발생하지 않음, 결과를 출력 } else { console.log(err); // 오류가 발생함, 오류 텍스트를 출력 } });

우리의 make 함수 코드를 설명한 방식에 맞게 수정해 봅시다:

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // 오류 텍스트 } else { err = null; // 오류 없음 } callback(arr[num], err); }, 3000); }
한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부