try~catch~finally

try : 예외가 발생할지도 모르는 코드를 정의한다.

catch : try절에서 예외가 발생할 경우 실행되는 코드를 정의한다.

finally : 예외와 상관없이 무조건 실행되는 코드를 정의한다.

 

  • try는 catch와 finally 중 1가지 이상과 함께 사용된다.
  • return, continue, break 문 등으로 인해 try 절이 끝나게 되면 finally까지 실행이 된 후에 돌아갈 곳으로 돌아가게 된다.
  • 만약 finally 절 안에서 rerurn, continue, break, throw가 발생하게 되면 try에서 먼저 발생한 return, continue, break는 무시되고 finally 절 안의 것만 처리된다.
  • 예외 처리는 확실한 예외 처리를 보장하지만 처리에 시간과 메모리가 많이 소요된다.
  • catch(err) : err 객체에는 name과 message 프로퍼티가 있다. 간단한 에러일 때는 (err) 없이 사용할 수 있다.

 

throw

예외를 강제로 발생시켜야 경우에 사용한다. 객체를 잘못 사용하는 사용자에게 예외를 강제로 발생시켜서 사용자에게 주의를 줄 수도 있고 예외와 관련된 처리를 해달라고 부탁할 수도 있습니다.

new Error("어떤 에러가 발생했습니다."), new SyntaxError, new ReferenceError

let div = 0;
let num1 = 2;
let num2 = 0;

try {
    if (num2 === 0) {
        throw new Error('0으로 나누기');
    }
    div = num1 / num2;
}
catch (e) {
    console.log(e.message); //0으로 나누기
}

2 나누기 0은 에러가 날 일이 없지만 강제로 예외를 발생시켜서 처리해줄 수 있다.

 

+ Recent posts