1 . 예외 (Exception)
- 프로그램 실행 중 발생할 수 있는 예상치 못한 문제 또는 오류 상황을 의미
- 예외 발생 시 프로그램은 중단되기 때문에 이를 적절히 처리하여 중단을 방지하거나 오류에 대한 정보를 사용자에게 제공해야 함

- 0으로 나누기 -> 오류
- ZeroDivisionError -> Exception 안에 포함됨
2 . 예외 계층 구조

- BaseException이 따로 있는 이유는 "진짜 에러"와 "프로그램 제어용 이벤트"를 구분하기 위해서임
2 - 1 . Exception
- 코드 실행 중 발생한 일반적인 오류
- 0으로 나누기 잘못된 타입 값 오류
2 - 2 . KeyboardInterrupt
- 사용자가 Ctrl + C 눌렀을 때 발생
- 프로그램을 강제로 멈추는 신호
2 - 3 . SystemExit
- 프로그램 종료 요청
- 내부적으로 exit() 호출 시 발생
- KeyboardInterrupt와 SystemExit는 사실 "에러"가 아니라 프로그램을 멈추거나 종료하기 위한 신호
3 . 예외 처리 기본 구조
- 기본값

- 어떤 오류가 발생될지 모르겠을 때는 ValueError, TypeError, ZeroDivisionError 등의 부모인 Exception을 작성해도 됨
- else, finally는 생략 가능함

- 예외 처리 시 except 구문을 위에서 아래로 하나씩 검사
- KeyboardInterrupt는 Exception의 자식이 아닌 BaseException의 자식이기 때문에 BaseException 출력
- except: 는 BaseException이 생략된 상태라 사용 시 오류가 발생될 수 있음
3 - 1 . raise
- 의도적으로 예외를 발생시키거나 현재 발생한 예외를 다시 전달하기 위해 사용하는 키워드
- 잘못된 입력이나 비정상적인 상태를 명확하게 알리고 호출한 쪽에서 적절히 처리하도록 흐름을 제어할 수 있음
3 - 2 . 파이썬 주요 예외 타입 정리


- 0으로 나눌 수 없음 -> ZeroDivisionError
- ZeroDivisionError의 부모는 Exception이기 때문에 결과가 동일함

- 없는 인덱스 출력 -> IndexError

4 . 예외 객체 내부 구조
- except ExceptionType의 뒤에 as를 붙이는 이유 : 발생한 예외 객체를 변수로 받아 안에 담긴 정보를 활용하기 위해
-기본값





'Python 기초' 카테고리의 다른 글
| 15 . 모듈 (0) | 2026.06.01 |
|---|---|
| 14 . 매직 메서드 (0) | 2026.05.29 |
| 12 . 객체지향 프로그래밍 4대 패러다임 (0) | 2026.05.29 |
| 11 . 객체지향 프로그래밍(OOP) (0) | 2026.05.28 |
| 10 . 사용자 정의 함수 (0) | 2026.05.28 |