try/catch문은 예외처리를 위한 구문이다.
try {
//예외처리가 발생할 수 있는 문장을 적는다.
} catch(예외상황1) {
//예외상황1이 발생했을 때 이를 처리하기 위한 문장을 적는다.
} catch(예외상황2) {
//예외상황2이 발생했을 때 이를 처리하기 위한 문장을 적는다.
} finally{
//예외상황이 발생하든 안하든 샐행한다.
}
try/catch문의 기본적인 구조이다.
try문에서 예외(에러)가 발생할 경우 예외상항에 맞게 catch문으로 가게된다. 말 그대로 에러를 cartch하는 것이다. 마지막의 finally는 예외상황이 발생하든 안 하든 실행이 되게 된다. 필수는 아니며 선택적으로 사용한면 된다.
finally를 만든 이유는 try문에서 반드시 실행되어냐 하는 로직이 있을 때 예외상황이 일어나면 실행이 되지 않는다. 그래서 그 로직을 finally 부분으로 옮겨 적어서 예외상황이 일어나든 안 나든 그 로직이 실행이 될 수 있게 해주는 역할을 해준다. 그레서 실무에서 많이 쓰이는 부분이다.
실행을 보게 되면
예외가 발생할 경우 try->catch->finally순으로 진행이 되고
예외가 발생하지 않는 겨우 try->finally순으로 진행이 된다.
trore는 예외던지는 것이다. 즉, 프로그매머가 throw를 사용하여 고의로 예외를 발생시키는 것이다. throw가 실행이 되면 throw가 실행이 되면 이후 부분은 실행이 되지 않는다.
function main() {
try{
throw new Error("Error")
} catch (e) {
console.log(e)
} finally {
console.log("a")
}
}
throw를 통해서 try문에서 new Error를 통해서 만들어진 에러를 throw를 통해 try문 밖으로 던지게 된다. 그러면 catch가 그 에러를 잡아서 catch문이 샐행이 되게 된다. 그리고 finally를 통헤서 console.log("a")가 실행이 되게 된다.