본문 바로가기
dev/javascript

[javascript] 에러 제어 (try, catch, throw)

by 최연탄 2023. 4. 18.
728x90
반응형

참고: https://www.javatpoint.com/javascript-try-catch

try...catch

일반적으로 try...catch 구문은 다양한 프로그래밍 언어에서 사용되고 있습니다. 기본적으로 오류가 발생하기 쉬운 코드의 처리를 위해 사용합니다. 할 수 있는 모든 가능한 오류를 처리 했음에도 또 다른 오류가 발생할지도 모를 때에 사용하기 좋은 구문입니다. 좋은 프로그래밍 접근 방식은 복잡한 코드를 try...catch 구문 안에 유지하는 것 입니다.

이제 각각의 구문에 대해 알아보겠습니다:

try{} 구문: 여기에 오류 테스트가 필요한 코드를 넣습니다. 오류가 발생하면 적절한 조치를 취하기위해 catch{} 블록으로 실행이 전달됩니다. 오류가 발생하지 않으면 try{} 구문의 코드만 실행됩니다.

catch{} 구문: 이 블록은 블록 내에 작성된 코드를 실행하여 오류를 처리합니다. 이 블록에는 사용자 정의 exception handler 또는 기본 제공 핸들러를 작성할 수 있습니다. 이 블록은 try 블록에서 에러가 발생한 경우에만 실행됩니다. 에러가 발생하지 않았다면 catch 블록은 건너뜁니다.

문법:

try {
  expression;
} catch (error) {
  expression;
}

try...catch 예제:

<html>

<body>
  <script>
    try {
      const a = ["34", "32", "5", "31", "24", "44", "67"];
      document.write(a);
      document.write(b);
    } catch (e) {
      alert("There is error which shows " + e.message);
    }
  </script>
</body>

</html>

throw 구문

throw 문은 사용자 정의 에러를 발생시킬 때 사용합니다. 사용자는 자신이 정의한 에러를 발생시킬 수 있습니다. 일단 throw 문이 실행되면 이후의 구문은 실행되지 않습니다. 구문 실행은 catch 블록으로 바로 전달됩니다.

문법:

throw exception;

try...catch...throw 문법:

try {
  throw exception;
} catch (error) {
  expression;
}

exception은 string, number, object, boolean 값이 될 수 있습니다.

try...catch와 throw 예제:

<html>

<body>
  <script>
    try {
      throw new Error('This is the throw keyword');
    } catch (e) {
      document.write(e.message);
    }
  </script>
</body>

</html>

try...catch...finally 구문

마지막으로 try 및 catch 문 실행 후 실행되는 finally 구문(선택 사항)입니다. finally 구문은 예외가 발생하든 안하든 마지막으로 실행되는 블록입니다.

문법:

try {
  expression;
} catch (error) {
  expression;
} finally {
  expression;
}

try...catch...finally 예제:

<html>

<body>
  <script>
    try {
      const a = 2;

      if(a === 2)
        document.write("ok");
    } catch (e) {
      document.write("Error found" + e.message);
    } finally {
      document.write(" Value of a is 2");
    }
  </script>
</body>

</html>

복잡한 코드를 처리하려면 try/catch/throw/finally 키워드를 함께 사용할 수 있습니다.

반응형

댓글