자바 에러와 예외

이애옹·2022년 10월 4일
0
post-custom-banner

📝 자바 에러와 예외

📌 에러와 예외의 차이점

컴퓨터 하드웨어의 동작의 오작동 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을 에러(error)라고 한다.

참고로 에러는 JVM 실행에 문제가 있다는 것이므로, JVM 위에서 실행되는 프로그램을
아무리 견고하게 만들어도 결국 실행 불능 상태가 되어버린다고 한다!!

예외(exception)란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다.

예외가 발생되면 프로그램은 곧바로 종료된다는 점에서 에러와 동일하다.

그러나 예외는 에러와 다르게 예외처리(Exception Handling)을 통해
프로그램을 종료하지 않고 정상 실행 상태가 유지될 수 있도록 할 수 있다.

📌 예외의 종류

예외에는 두가지 종류가 있다.
하나는 일반 예외(Exception)이고, 다른 하나는 실행 예외(Runtime Exception)이다.

  • 일반예외 : 예외처리를 하지 않으면 컴파일 오류 발생
  • 실행예외 : 예외처리 하지 않아도 컴파일 가능

출처 : https://butter-shower.tistory.com/87

📌 예외의 구분

RuntimeException을 상속하지 않은 클래스는 Checked Exception,
반대로 상속한 클래스는 Unchecked Exception으로 분류할 수 있다.

- Checked Exception
1. 반드시 예외처리가 필요
2. Error와 RuntimeException을 상속하지 않은 예외를 모두 포함한다.
3. 트랜잭션 처리시 에러가 발생해도 롤백하지 않는다.

- UnChecked Exception
1. 명시적으로 예외처리를 할 필요가 없다.
2. RuntimeException에서 상속받는 예외를 포함한다.
3. 트랜잭션 처리시 에러가 발생하면 롤백한다.


출처 : 오늘도 MadPlay!

📌 예외처리 방법

예외를 처리하는 방법에는 예외 복구, 예외 처리 회피, 예외 전환 방법이 있다.

1. 예외 복구 (try-catch)

  • 예외 상황을 파악하고 문제를 해결해서 정상 상태로 돌려놓는 방법
  • 예외를 잡아서 일정 시간, 조건만큼 대기하고 다시 재시도를 반복한다.
  • 최대 재시도 횟수를 넘기게 되는 경우 예외를 발생시킨다.
  • 가독성이 떨어지고 번거로워질수있다.

2. 예외처리 회피 (throws)

  • 예외 처리를 직접 담당하지 않고 호출한 쪽으로 던져 회피하는 방법
  • 그래도 예외 처리의 필요성이 있다면 어느 정도는 처리하고 던지는 것이 좋다.
  • 긴밀하게 역할을 분담하고 있는 관가 아니라면 예외를 그냥 던지는 것은 무책임하다.

3. 예외 전환

  • 예외 회피와 비슷하게 메서드 밖으로 예외를 던지지만, 그냥 던지지 않고 적절한 예외로 전환해서 넘기는 방법
  • 조금 더 명확한 의미로 전달되기 위해 적합한 의미를 가진 예외로 변경한다.
  • 예외 처리를 단순하게 만들기 위해 포장(wrap) 할 수도 있다.

👀 참고자료

지니의 기록
오늘도 MadPlay!
개발은 재밌어야 한다
https://butter-shower.tistory.com/87

profile
안녕하세요
post-custom-banner

0개의 댓글