[TIL] 26/10/07 - 커머스 과제 후

맹돌이·2026년 10월 7일

TIL

목록 보기
13/15

try-catch

if문으로 예외를 처리하는 것 보다 try-catch문을 더 잘 활용하는 편이 좋을듯하다

try {
	result = sc.nextInt();
} catch (Exception e){
	System.out.println("값이 잘못되었습니다.");
}

앞서 배웠듯이 try문을 실행하다가 잘못된 값이 들어오게되면 아래는 실행하지않고 catch문으로 넘어간다.
위에서는 result를 정수형으로 받고있는데, 정수가 아닌 다른 타입의 값을 입력한다면 catch문으로 넘어가서 출력문을 뱉어준다

if vs try-catch

if문은 문제가 생기기 전에 미리 확인해서 예외를 막는 방식이고
try-catch는 이미 발생한 예외를 받아서 처리하는 방식이다

그럼 뭘 써야할까

try-catch를 써야 하는 곳:
사용자 입력 예외: sc.nextInt() 처럼 사용자가 문자를 넣을지 숫자를 넣을지 예측할 수 없을 때 (InputMismatchException)
외부 시스템 연동: 파일 읽기/쓰기, 네트워크 통신, DB 조회 등 개발자가 제어할 수 없는 영역 등을 검사할때 사용하자

if문(또는 직접 throw)을 써야 하는 곳:
값의 범위 검사: 입력을 숫자로 잘 받았더라도, 그 숫자가 -1이거나 메뉴 범위를 벗어난 999일 때
상태 검사: cart.isEmpty() 처럼 장바구니가 비어있는지 확인할 때 사용

final 키워드

절대 변하지 않는 값 final
이번 과제에서는 관리자 모드에 들어가는 비밀번호를 3번 틀리면 다시 돌아가야하니까
시도횟수를 final로 설정하는 것이 더 좋았을 것

enum 사용의 장점

이넘을 사용해서 코드의 가독성을 높일 수 있다
가령 아래와 같은 코드가 있다고하자

// 1이 주문 완료인지, 결제 완료인지 코드를 다 뒤져봐야 함
if (order.getStatus() == 1) { ... }
// 코드를 읽는 순간 직관적으로 상태를 이해할 수 있음
if (order.getStatus() == OrderStatus.PAYMENT_COMPLETED) { ... }

enum을 사용함으로써 눈으로 봤을때 직관적으로 상태를 이해할 수 있게되었음

0개의 댓글