
예외처리 문법
try:
...
except [발생오류[as 오류 메시지 변수]]:
...
except 사용법
1. except만: 오류 종류 관련X, except 블록 수행
2. 발생오류+excpet: 정해진 오류이름과 일치해야 except 블록 수행
3. 발생오류+오류메시지+except: 오류이름, 오류메시지 일치해야 except 블록 수행

try로 4/0 실행 -> 0으로 나눴을 때 오류(ZeroDivisionError)발생 -> 오류 메시지를 e에 저장하고 출력
try로 리스트 a에 없는 5번째 숫자 출력 -> 오류(IndexError)발생 -> 오류 메시지를 e에 저장하고 출력
try, finally문: finally는 예외 없이 항상 수행
- 사용한 리소스를 close 해야할 때 사용
try로 파일 쓰기모드로 열기 -> "heyhey" 적기 -> 파일 닫기

여러개의 오류 처리
try:
...
except 발생오류1:
...
except 발생오류2:
...
try로 리스트 a에 존재하지 않는 4번째 요소 출력/4를 0으로 나눔 -> 인덱스오류(존재X 4번째요소) 먼저 발생, 제로 오류 발생 X

try로 리스트 a에 존재하지 않는 4번째 요소 출력/4를 0으로 나눔 -> 인덱스 오류 먼저 발생, 인덱스 오류 메시지 출력
try로 존재하지 않는 파일 읽기 모드로 열기 -> FileNotFoundError 발생, pass로 무시(회피하기)

오류 일부러 발생: raise
ex) Bird클래스를 상속받는 자식 클래스는 fly 함수를 포함해야함
1번 예시: 메서드 오버라이딩으로 fly 함수 포함 -> "very fast" 출력
2번 예시: 메서드 오버라이딩으로 fly 함수 무시 -> NotImplementedError 발생
***NotImplementedError: 꼭 작성해야하는 부분이 구현되지 않았을때 발생



예외 만들기: 특수한 경우, 예외처리 위해 파이썬 내장함수 Exception 상속
1. 클래스 MyError가 파이썬 내장함수 exception 상속
2. 함수 say_nick(객체-nick) 만약 nick이 "stupid"라면 일부로 오류 발생 raise MyError, 아니면 nick 출력
3. 오류예외 처리 try로 say_nick('angel'), say_nick('studpid') 실행, 만약 MyError 발생하면 "not allowed to use"출력
오류메시지 출력하고 싶을때
1. 클래스 MyError가 파이썬 내장함수 exception상속
2. 메서드 __str__정의
3. 오류예외 처리 try로 angel과 stupid 실행, MyError 실행됨 -> not allowed to use 출력됨
오늘 점프투파이썬 라이브러리 예제편 구매했다.. 언넝 배우고 싶당...
'컴퓨터 프로그래밍 > Python' 카테고리의 다른 글
점프 투 파이썬(2022) 이해 안 됐던 것들 모음 (0) | 2023.02.07 |
---|---|
점프 투 파이썬(2022) 5-6 라이브러리, 5장 연습문제 (0) | 2023.02.02 |
점프 투 파이썬(2022) 5-2, 5-3, 5-5 (0) | 2023.01.27 |
점프 투 파이썬(2022) 5-1 (0) | 2023.01.22 |
점프 투 파이썬(2022) 4-2 ~ 4-3 (1) | 2023.01.05 |