04.예외처리하는방법(try/catch그리고 finally)

sol·2022년 1월 17일
0

코드를 짜다보면 문법에러로 인한 오류도 있지만, 데이터 통신오류, 입력이 잘못된값 등 여러 외부요인으로 인한 오류가 생길수 있기때문에 문제가 되지않고록 에러에 대한 해결책을 만들어 놔야한다.

If/else 구문을 사용하여 조건문을 사용하면 되지않을까 생각이 들겠지만, 모든 에러를 예측할수 없을뿐더러 예상치 못한 오류가 생길수도 있고, 수십, 수백 혹은 수억개의 오류를 다 기재할수 없고 안정적이지도 않기때문에 적합하지 않다.

그렇기에 Try/Catch문을 이용해 코드가 중단되는것을 방지하고 조금더 안정적인 코드를 작성할수있다.

Try/Catch 구문은 함수내에서 오류는 개발자에 의해서 수정되었다고 판단하여, 에러를 발생시키지 않기때문에 오류가 발생하여도 무시할필요가 있을경우에만 사용이 된다.

try{
    // 실행될 코드 
} catch(error){
 	//에러 발생시 실행할코드
} finally {
	// try 블럭또는 catch 블럭 실행 후 무조건 실행
}
    
    

로 구성이 되어있으며, 오류가 없을경우 try의 끝까지 실행된후 catch에 대한부분은 건너뛰며, 만약 에러가 있다면 try내의 코드는 중단되고 catch부분으로 넘어간뒤 error에 어떤오류가 있었는지에 대해 담긴다.
그래서 어떤 오류인지 확인하고 싶다면 console.log(error) 를 사용하여 error에 대한 내용을 확인할수있다.

혹시라도 에러에 대한 정보가 필요하지 않을경우에는 생략할수있다.

try{
    // 실행될 코드 
} catch{
 	//에러 발생시 실행할코드
    

finally는 무언가를 실행하고, 결과에 상관없이 실행하고 싶을때 사용한다.

순서를 보면

  1. try안의 코드가 실행된다.
  • 에러가 없다면 → try코드 실행후 finally 블록이 실행된다.
  • 에러가 있다면 → try안의 코드는 중단이되고 catch안의 코드가 실행된 후 finally로 넘어간다.

Try - catch - finally 순으로 쓸필요는 없고, try/finally코드를 사용해도 되며, 에러를 처리하지 않고 작업을 확실하게 마무리할때 사용하면 된다.

profile
귀여운 율무랑 레슈랑

0개의 댓글