[본캠프] 11일차

윤영범·2026년 3월 24일
post-thumbnail

과제를 마무리하면서 느낀점

  • 예외상황이라는게 정말 많은걸 느꼈다 입력창에 잘못입력만하면 바로 예외가 생기면서 프로그램이 멈추는걸 경험하면서 예외처리의 대한 구글링을 통해 학습을 확실하게한거같다
  • 응용하는것도 중요하지만 이론도 정말 중요하다는걸 느꼈다 우리가 코드를 간결하게 표현하기위해 Switch 문을 대신해 enum 을 쓰는거처럼 응용하는것도 중요하지만 코드의 가독성을 위해 이론도 중요하다는걸 알게 되었다

과제를통해 예외처리쪽을 좀 구글링하다가 알게된 정보들을 공유하려고한다

1.누가 발생시키냐 (의도)

의도적인예외 (나)

  • 내가 직접 조건을 정할수있음
  • 내가 직접 throw 함
  • 사용자 입력 검증에 많이 쓴다

내가 직접실습했던 계산기를 예를들어설명해보면

  • 0으로 나누기
  • 잘못된 연산자 입력
  • chater1,2에서 음수 제한 같은 조건

내가 직접 이건 안되는거다 정의

의도치 않은예외 (JVM)

-자동으로 발생
-실행하다 갑자기 터지는것
-try-catch로 잡을수있음

내가 직접 실습했던 코드안에서 예를 들면

  • 숫자가 아닌 입력 스캐너에 문자열을 입력했을때(InputMismatchException)
  • 리스트의 배열범위 초과(IndexOutOfBoundsException)
  • null 접근 (NullPointerException)

구분

구분의도적인 예외의도치 않은 예외
발생 주체개발자JVM
방식throw자동 발생
목적검증, 제어오류 상황
예시IllegalArgumentExceptionNullPointerException

중요한개념

👉예외는 "에러 처리"가 아니라 "흐름 제어 도구"다

프로그램 안 죽게 만들고
사용자에게 다시 입력 받게 하고
상황별로 다르게 처리하는 용도

2.언제 검사하냐 (시점)

컴파일 예외 (Checked)

  • 컴파일때 검사하는 예외처리
  • 파일 저장/읽기 기능
  • DB 접근
  • 외부 API 호출에 많이사용
  • 반드시 실패할수있을 상황이니 대비해라

런타임 예외 (Unchecked)

  • 컴파일러가 신경쓰지않음
  • 내가 겪은상황 대부분이 여기해당한다 실행도중 발생
  • 내가 직접짠 코드문제니 너 알아서해라

✔ 파일/DB/네트워크 → Checked
✔ 나머지 대부분 → Unchecked

상황CheckedUnchecked
파일 없음
DB 오류
null 접근
배열 초과

예외처리방법

1.try-catch

nextDouble 창에 문자열을를 입력하면어떻게될까?

이런식으로 InputMismatchException 에러가 발생하게된다(런타임에러)
이러한 예외를 발생한곳에서 직접 잡아 처리해주기위해 try-catch문을 사용하게된다

2.throws

메서드 선언부 끝에 throws 키워드를 사용하여 해당 메서드를 호출한 곳으로 예외 처리를 떠넘긴다
상위 메서드에서 이 예외를 처리(try-catch)하지 않으면 프로그램이 최종적으로 중단될 수 있다.
checked예외일때 대부분쓴다 직접처리할수없을때

try-catch 와 throws 비교

구분try-catchthrows
역할직접 처리책임 넘김
위치실행 코드 안메서드 선언부
목적에러 해결책임 분리
결과여기서 끝남위로 전달됨

0개의 댓글