[우아한테크코스 백엔드 4기] 레벨1 - enum, exception 강의 필기 정리

헌치·2022년 3월 8일
2

우아한테크코스

목록 보기
12/30
post-thumbnail

@enum

  • 상수인데 메서드를 가질 수 있다
  • 반복되는 상수, if문 -> enum
  • 싱글톤 패턴
    • 객체의 인스턴스가 오직 1개만 생성되는 패턴
public enum FontStyle {
    NORMAL, BOLD, ITALIC, UNDERLINE;

    FontStyle() {
    }
}

@Exception

  • 발생할거로 예상되는 예외를 catch 해야 함
    • RuntimeException ...

1) checked exception

  • Exception
  • 컴파일 시점에 처리(try/catch)를 하지 않을 경우 컴파일 에러가 발생한다.
  • 핸들링을 해야 함 : throws 예약어를 활용해 Exception을 호출 메소드에 전달할 수도 있음
  • 최신 언어에선 잘 사용 X
public class Position {
    public Position(String position) throws InvalidPositionException {
        if (position.length() != 2) {
            throw new InvalidPositionException(position + "은 위치 값 형식에 맞지 않습니다.");
        }

        x = (int) (position.charAt(0) - 'a');
        y = Integer.parseInt(position.substring(1)) - 1;
    }

    //...

}

2) unchecked exception

  • RuntimeException
  • 컴파일 시점에 예외를 catch 하는지 확인하지 않는다.
  • 핸들링 X

3) 예외처리법

  • 복구
    • Exception 발생 시 이를 예측하여 다른 비즈니스 로직 흐름으로 유도
    • 예외가 발생하지 않는 상황으로 복구 로직 추가
  • 회피
    • throws...예외를 상위로 던져버림
    • 웬만해선 X
  • 전환
    • 다른 Exception으로 전환
    • 어떤 예외인지 더욱 분명히 할 수 있음
  • 무시
    • catch 후 아무 일 x
    • 웬만해선 X

4) 표준 예외 vs 커스텀 예외

  • 표준 예외
    • 자바에는 이미 다양한 표준예외가 존재
    • 기본적인 건 표준예외를 사용하자(소통이 더 편함)
  • 커스텀 예외
    • 관리할 클래스가 많아진다
    • 예외 관련 구체적 로직이 있는 경우엔 커스텀 예외 사용도 좋다

5) printStackTrace vs println

  • printStackTrace
    • 예외 발생 경로까지 추적 가능
    • 예상못한 예외상황에서 사용
  • println(e.getMessage())
    • 커스텀예외나 예측가능한 예외상황
    • 예외 메세지만 출력

6) finally

  • 예외가 발생하더라도 반드시 실행
  • return이 있을 시 finally 값이 리턴됨
  • 끈질기게 실행된다... 쓰지 않는편이 좋다?

참고자료

교육자료-enum
교육자료-exception

profile
🌱 함께 자라는 중입니다 🚀 rerub0831@gmail.com

0개의 댓글