본문 바로가기

JavaScript/Web Development

[JavaScript] 마지막에 써야하는 catch 메소드

[catch 메소드가 마지막에 있지 않은 경우]

 

다음 코드를 실행시키면,

fetch('https://jsonplaceholder.typicode.com/users')
    .then((response) => response.text())
    .catch((error) => { console.log(error); })
    .then((result) => {
        console.log(result);
        throw new Error('test'); 
    });

fetch 함수는 정상실행되어 response 가 잘 전달 되었으나, 그 뒤에서 발생한 에러는 잡지 못했음.

rejected 상태의 promise 가 남고 딱히 처리를 안해주면 웹 브라우저는 에러로 인식함.


[catch 메소드가 마지막에 있는 경우]

 

다음과 같이 catch 함수가 맨 마지막에 있으면,

fetch('https://jsonplaceholder.typicode.com/users')
    .then((response) => response.text())
    .then((result) => {
        console.log(result);
        throw new Error('test'); 
    })
    .catch((error) => { console.log(error); });

에러 발생하지 않고 정상적으로 출력 됨. 

 

다음과 같이 잘못된 url 주소를 입력하는 경우,

TypeError 객체가 정상적으로 출력됨.