본문 바로가기

JavaScript/Web Development

[JavaScript] async/ await 의 catch/ finally 문

다음과 같이 잘못된 url 주소를 입력한 코드를 실행하면, 

async function fetchAndPrint() {
  const response = await fetch('https://jsonplaceholder.typicode.commm/users');
  const result = await response.text();
  console.log(result);
}

fetchAndPrint();

다음과 같이 에러가 발생.

 


 

[try catch 문]

 

이 문제를 해결하기 위해 try catch 문을 사용하면,

async function fetchAndPrint() {
    try {
        const response = await fetch('https://jsonplaceholder.typicode.commm/users');
        const result = await response.text();
        console.log(result);
    } catch (error) {
        console.log(error);
    }
  }
  
  fetchAndPrint();

try 블록 안의 await 이 붙어있는 promise 객체 중, rejected 가 발생하면 코드의 흐름이 catch 문으로 넘어오게 됨. 또한 작업 실패 정보가 담긴 에러 객체 생성.

 

 

[finally 문]

 

async function fetchAndPrint() {
    try {
        const response = await fetch('https://jsonplaceholder.typicode.commm/users');
        const result = await response.text();
        console.log(result);
    } catch (error) {
        console.log(error);
    } finally {
        console.log('exit');
    }
  }
  
  fetchAndPrint();

finally 문에 있는 코드는 항상 출력 됨.

 

 

'JavaScript > Web Development' 카테고리의 다른 글

[JavaScript] async 함수가 리턴하는 promise 객체  (0) 2023.03.10
[JavaScript] async/ await  (0) 2023.03.07
[JavaScript] axios  (0) 2023.03.06
[JavaScript] Ajax  (0) 2023.03.06
[JavaScript] Promise 객체 만들기  (0) 2023.03.06