과제를통해 예외처리쪽을 좀 구글링하다가 알게된 정보들을 공유하려고한다
내가 직접실습했던 계산기를 예를들어설명해보면
내가 직접 이건 안되는거다 정의
-자동으로 발생
-실행하다 갑자기 터지는것
-try-catch로 잡을수있음
내가 직접 실습했던 코드안에서 예를 들면
| 구분 | 의도적인 예외 | 의도치 않은 예외 |
|---|---|---|
| 발생 주체 | 개발자 | JVM |
| 방식 | throw | 자동 발생 |
| 목적 | 검증, 제어 | 오류 상황 |
| 예시 | IllegalArgumentException | NullPointerException |
👉예외는 "에러 처리"가 아니라 "흐름 제어 도구"다
프로그램 안 죽게 만들고
사용자에게 다시 입력 받게 하고
상황별로 다르게 처리하는 용도
✔ 파일/DB/네트워크 → Checked
✔ 나머지 대부분 → Unchecked
| 상황 | Checked | Unchecked |
|---|---|---|
| 파일 없음 | ✔ | ❌ |
| DB 오류 | ✔ | ❌ |
| null 접근 | ❌ | ✔ |
| 배열 초과 | ❌ | ✔ |

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

이런식으로 InputMismatchException 에러가 발생하게된다(런타임에러)
이러한 예외를 발생한곳에서 직접 잡아 처리해주기위해 try-catch문을 사용하게된다
메서드 선언부 끝에 throws 키워드를 사용하여 해당 메서드를 호출한 곳으로 예외 처리를 떠넘긴다
상위 메서드에서 이 예외를 처리(try-catch)하지 않으면 프로그램이 최종적으로 중단될 수 있다.
checked예외일때 대부분쓴다 직접처리할수없을때
try-catch 와 throws 비교
| 구분 | try-catch | throws |
|---|---|---|
| 역할 | 직접 처리 | 책임 넘김 |
| 위치 | 실행 코드 안 | 메서드 선언부 |
| 목적 | 에러 해결 | 책임 분리 |
| 결과 | 여기서 끝남 | 위로 전달됨 |