try catch 예외처리

zansol·2019년 6월 23일
1
post-thumbnail

😗 왜

프로젝트를 진행하며, 사용자의 잘못된 입력을 방지하기 위해 예외처리를 해야할 일이 많아졌다. 단순히 if/else 구문으로 처리를 해왔는데, if/else로 예외를 처리하게되면 에러가 발생한 객체에 대해서 수명이 유지되기 때문에 에러를 처리하는 동안에도 에러가 발생한 객체를 참조하는 코드가 정상적으로 컴파일 된다. 그리고 코드가 중첩되면서 이해하는데 어려움이 있었다. 하지만 try/catch는 블럭으로 처리되면서 try 안의 모든 객체는 스코프를 벗어나 참조할 수 없게되므로 훨씬 안전한 코드를 작성할 수 있었다. 하지만 여전히 clean-code 는 아닌듯하다.

오류가 발생하면 예외를 던지는 폇이 낫다. 

😗 문법

try {
/*
- 정상 작동하는 코드 블럭
- 경우에 따라 에러(예외)가 발생한다. 예외를 사용할 때, throw를 사용한다.
- throw는 사용자 정의 예외를 던질 수 있다.
- 예외는 throw 문에 의해 직접적으로 발생할 수도 있고, 예외를 발생시키는 메서드의 호출에 의해 발생할 수도 있다.
*/
} catch (e) {
/*
- 이 블럭의 에러는 오직 try 문에서 에러가 발생했을 때 실행된다.
- catch 블록은 throw문장에 의해 명시된 값을 가지고 있는 식별자를 명시한다. 
  이 식별자를 발생된 예외에 대한 정보를 얻기 위하여 사용할 수 있다. 
  자바스크립트는 catch 블록에 진입했을때 식별자를 생성하고, 식별자는 catch 블록에 있는 동안만 유지된다. 
  catch 블록의 시행이 끝난 후, 식별자는 더이상 사용하실 수 없다.
*/
} finally {
/*
- try 블록과 catch 블록이 시행되고, try...catch 문법 다음 문장이 시행되기 전에 시행되는 문장들을 포함한다.
*/
}

😗 마무리

22일, GDG를 다녀왔다. 다녀와서느낀점은 어떻게 능동적인 사람으로 평생 공부할 수 있는가에대해 고민이 생겼다. 삽질도 '좋은' 삽질이 하고싶은 주니어로서 앞으로 어떤 계획으로 어떤 개발생활을 해야할지 고민해봐야겠다.

profile
Front-end Web Developer

4개의 댓글

comment-user-thumbnail
2019년 6월 23일

썸네일이 너무 예쁘고, 귀여워요.
이 이미지들은 직접 그리시는건가요?

1개의 답글
comment-user-thumbnail
2019년 6월 26일

썸네일 너무 귀여워요🤣

1개의 답글