달나라 노트

Google Apps Script : try ~ catch ~ finally (try 구문, 예외 처리, 에러 처리, try except) 본문

Google Apps Script

Google Apps Script : try ~ catch ~ finally (try 구문, 예외 처리, 에러 처리, try except)

CosmosProject 2022. 11. 22. 20:54
728x90
반응형

 

 

 

try ~ catch ~ finally 구문은 에러 처리를 할 때 사용합니다.

에러가 발생했을 때 어떤 동작을 할지를 지정해주는 구문입니다.

 

 

Syntax

try {
  do something 1
}
catch(variable) {
  do something 2
}
finally {
  do something 3
}

 

형태는 위와 같습니다.

 

실행되는 순서를 알아봅시다.

 

가장 먼저 try { ~~ } 부분이 실행됩니다.

do something 1을 실행하고 여기서 에러가 발생한다면 catch 블록이 실행됩니다.

만약 try 블록에서 에러가 발생하지 않았다면 catch 블록은 실행되지 않습니다.

 

finally 블록은 try, catch 블록에서 에러가 발생하건말건 무조건 실행되는 부분입니다.

 

catch 블록을 보면 catch(variable)이라고 적혀있는데 catch 블록에서는 try 블록에서 발생한 error 관련 내용을 variable에 저장해줍니다.

그래서 catch 블록이 실행된다면 try 블록에서 발생한 에러에 대한 정보를 볼 수도 있습니다.

 

 

 

예시를 봅시다.

 

 

function myFunction() {
  try {
    asierfhasoilrhfg
  }
  catch(e) {
    Logger.log(e.message);
  }
  finally {
    console.log('Final part');
  }
}


-- Result
asierfhasoilrhfg is not defined
Final part

 

try 블록을 봅시다.

asierfhasoilrhfg 라는 내용이 적혀있습니다.

이것은 텍스트도아니고 변수도 아닙니다. 왜냐면 미리 선언된 변수가 아니기 때문이죠.

따라서 try 블록은 Error가 발생합니다.

 

 

그러면 try블록은 넘어가고 catch 블록이 실행됩니다.

catch(e) 처럼 적힌 것을 보면 변수 e에 try 블록에서 발생한 Error관련 정보가 담기게됩니다.

그래서 catch 블록을 보면 e.message 처럼 error에 대한 메세지를 출력하는 기능을 담고 있습니다.

 

asierfhasoilrhfg is not defined

 

에러를 보면 위와 같습니다.

처음에 말했던 대로 정의되지 않은 변수라는 에러가 발생한 것입니다.

 

 

그리고 마지막으로 try, catch 블록에서 무슨 일이 있었건 상관없이 finally 블록이 실행됩니다.

그래서 Final part라는 문자가 출력된 것을 볼 수 있죠.

 

 

 

 

 

 

728x90
반응형
Comments