파이썬 예외 처리 본문
# 예외 처리
# 파이썬 예외처리의 이해
# 예외 종류
# 문법적으로 에러가 없지만, 코드 실행(런타임) 프로세스에서 발생하는 예외 처리도 중요
# linter (코드 스타일, 문법체크
# SyntaxError : 잘못된 문법
# NameError : 참조변수 없음
# ZeroDivisionError : 0 나누기 에러
# IndexError : 인덱스 범위 오버
# KeyError -> Dict 키 조회 시 get 메소드 활용하기
# AttributeError : 모듈, 클래스에 있는 잘못된 속성 사용시에 예외
# ValueError : 참조 값이 없을 때 발생
# FileNotFoundError : 외부파일 처리 시 주로 발생
# Type Error
# 항상 예외가 발생하지 않을 것으로 가정하고 먼저 코딩
# 그 후 런타임 예외 발생 시 예외 처리 코딩 권장(EAFP 코딩 스타일)
# 에외 처리 기본
# try : 에러가 발생할 가능성이 있는 코드 실행
# except : 에러명1
# except : 에러명2
# else : 에러가 발생하지 않았을 경우 실행
# finally : 항상 실행
name = ['kim', 'park', 'lee']
# Ex1
try:
z = 'kim'
x = name.index(z)
print('{} Found it! in name'.format(z, x+1))
except:
print('Not found it! - Occurred ValueError!')
else:
print('Ok! else!')
print('--------')
# Ex2
try:
z = 'jin'
x = name.index(z)
print('{} Found it! in name'.format(z, x+1))
except:
print('Not found it! - Occurred ValueError!')
else:
print('Ok! else!')
print('--------')
# Ex3
try:
z = 'kim'
x = name.index(z)
print('{} Found it! in name'.format(z, x+1))
except:
print('Not found it! - Occurred ValueError!')
else:
print('Ok! else!')
finally:
print('Finally Ok!')
# Ex4
# 예외 처리는 하지 않지만, 무조건 수행되는 코딩 패턴
try:
print('try')
finally:
print('Ok Finally')
# Ex5
try:
z = 'kim'
x = name.index(z)
print('{} Found it! in name'.format(z, x+1))
# 계층적으로 에러 코딩
except ValueError:
print('Not found it! - Occurred ValueError!')
except IndexError:
print('Not found it! - Occurred ValueError!')
except Exception:
print('Not found it! - Occurred ValueError!')
else:
print('Ok! else!')
finally:
print('Finally Ok!')
# Ex6
# 예외 발생 : raise
# raise 키워드로 예외 직접 발생
try:
a = 'kim'
if a=='kim':
print('Ok')
else:
# 직접 정의
raise ValueError
except ValueError:
print('Error!!')
except Exception as f:
print(f)
else:
print('Ok')
'개발 > Python' 카테고리의 다른 글
파이썬 print 함수 (0) | 2020.06.10 |
---|---|
파이썬 반복문 (0) | 2020.06.10 |
파이썬 파일 읽기, 쓰기 (0) | 2020.06.10 |
파이썬 함수 (0) | 2020.06.10 |
문자열 역순 출력 (0) | 2020.06.06 |