개발새발

오류와 예외는 같은걸까? 본문

우아한테크코스

오류와 예외는 같은걸까?

무비인 2022. 2. 20. 19:00

기능 요구사항에 입력이 잘못되면 IllegalArgumentException 을 발생 시키라고 되어있었다.

에러를 try ~ catch문 으로 받아본 적은 있으나 일부러 발생시켜서 던져본 적은 없었고,

그래서 구글링을 하던 중 에러(error)  예외(exception) 를 혼용해서 사용하는 포스팅을 보게 되었다.

두개의 차이가 뭘까? 나도 정확하게 모르겠어서 알아봤고, 결론부터 말하자면 다르다!!



오류(error)

시스템 레벨에서 발생하며, 개발자가 예측하지 못하는 결함


예외(exception)

개발자가 짠 로직에서 발생, 예외 상황을 예측할 수 있어 예외처리가 가능함


차이를 알아봤다. 예측 불가능 함과 가능함.. ! 오케이 그럼 이제 예외처리 방식에 대해 알아보자


예외(exception) 처리 방법

  • try ~ catch문 ( 예외가 발생될 것 같은 문장을 try에 적고, 예외가 발생 되면 catch 에서 잡는다)
  • 예외 회피 throws ( 예외를 떠 넘긴다)
  • 예외 발생 throw ( 예외를 즉시 발생시킨다. ex) new throw IllegalArgumentException) 이때, 에러명(에러메세지) 를 작성하면 세부적인 내용을 출력할 수 있다.

IllegalArgumentException

위 에러에 대해 찾아보았다.

이 에러는 이름 그대로 적합하지 않거나(illegal) 적절하지 못한(inappropriate) 인자를 메소드에 넘겨주었을 때 발생한다고 한다.

해결 방법

위 요구사항에 예외를 발생 시키라고 명시했기 때문에 new throw 로 예외 처리를 진행했다.


느낀점

맨 처음 오류와 에러가 뭐지? 생각했을 때 애매~하게 아는 느낌이라 넘어가려고 했다.

그런데 우테코 과정에서 `성장` 을 중점으로 두고 있고, 난 프리코스에 참여하고 있기 때문에 확실하게 알기 위해 찾아보았다.
그랬더니 내가 모르는 내용들이 더 많았고, 앞으로 애매하게 아는 건 모른다고 생각하고 다시 공부 해야겠다고 생각했다.

에러를 찾아보며 공식 문서에 들어갔는데, 에러의 종류와 갯수가 어마어마하게 많았다.. ㅋㅋㅋㅋㅋㅋㅋ
시간 날때 틈틈히 읽어보면 좋을 것 같고, 예외 처리에 대한 예제들을 접해보면서 익히면 좋을 것 같다.

참고

'우아한테크코스' 카테고리의 다른 글

객체, 설계  (0) 2022.08.24
JDBC와 JDBC Template  (0) 2022.04.27
MVC 패턴  (0) 2022.02.20
Enum을 사용하는 이유가 뭘까?  (0) 2022.02.20
Mac에서 JAVA 버전 확인과 IntelliJ 에서 JDK 변환하기  (0) 2022.02.20