try, catch문

1

코드 || 키워드

목록 보기
1/5

JavaScript에서 try, catch문은 런타임 오류를 처리할 수 있도록 하는 명령문입니다.

try ~ catch 란?

try ~ catch 문은 실행할 코드블럭을 표시하고 예외(exception)가 발생(throw)할 경우의 응답을 지정하는 것이다. 사용법은 아래와 같다.

try_statements는 실행될 선언들을 의미하고,

catch_statements는 try 블록에서 예외가 발생했을 때 실행될 선언들을 의미한다.

exception_var는 catch 블록과 관련된 예외 객체를 담기 위한 식별자이고

마지막으로 finally_statements는 try 선언이 완료된 이후에 실행된 선언이다.
이 선언들은 예외 발생 여부와 상관없이 실행된다.

try 선언의 형식

try 선언에는
try ~ catch | try ~ finally | try ~ catch ~ finally
이렇게 세 가지 형식이 존재한다.

catch 블록은 try 블록 안에서 예외가 발생하는 경우 무엇을 할지 명시하는 코드를 포함한다. try 블록 (또는 try 블록 내에서 호출된 함수) 내의 명령문이 예외를 throw 하면 제어가 catch 블록으로 이동한다.
그러나 try 블록에 예외가 발생하지 않으면 catch 블록을 건너뛰게 된다.

finally 블록은 try 블록과 catch 블록이 실행을 마친 후 항상 실행된다. 예외가 발생했는지에 관계없이 항상 실행되는 블록이다.

추가로 하나 이상의 try 문을 중첩할 수 있다는 사실도 알아두자.
내부의 try 문에 catch 블록이 없으면, 둘러싼 try 문의 catch 블록이 입력된다.

무조건적 catch문

try 블록 내에서 예외가 발생하면 catch 블록이 실행된다.
예를 들어, 다음 코드에서 예외가 발생하면 제어가 catch 블록으로 전송된다.

조건적 catch문

아래와 같이 try ~ catch 블록을 if ~, else if ~, else 구조와 결합해서
'조건부 catch-blocks'를 만들 수 있다.

이에 대한 일반적인 사용 사례는 예상 오류의 작은 하위 집합 만 포착한 다음 다른 경우에 오류를 다시 발생시키는 것이다.

<요약>

-try ~ catch 문은 실행할 코드블럭을 표시하고,
예외가 발생할 경우의 응답을 지정하는 것이다.

  1. try 블록에는 실행시킬 로직을 작성하고
  2. catch 블록에서는 오류가 발생할 경우 실행될 코드를 작성합니다.
try {
  const result = someFunction(); // 에러가 발생할 수도 있는 코드
  console.log(result);
} catch (error) {
  console.error(error);  // try 블록 코드 에러발생시, 진행되는 코드
}

try블록 코드에서 오류가 발생하면 제어권이 catch블록으로 넘어가고 error가 catch블록의 인수로 전달됩니다. 그러나 try블록에서 오류가 발생하지 않으면 catch블록을 건너뜁니다.

진행되어야할 코드의 로직에서 에러발생시, 코드가 더이상 진행되지 않아 사용자 입장에서는 이유를 알 수 없어 황당한 경험을 겪을 수 있다. 예외처리를 미리 해두둬서, 고객이 이상한 경험을 하지 않도록 해야한다.

-try 선언에는 try ~ catch | try ~ finally | try ~ catch ~ finally
이렇게 세 가지 형식이 존재한다.

-무조건적 catch문 vs 조건적 catch문

profile
안녕하세요😄 비전공자의 웹개발자 도전기를 쓰는 중입니다! 수정/보완할 부분이 있다면 피드백 언제든 환영입니다!

0개의 댓글