[서울ICT 데이터 중급(분석) 과정]
프로그램 실행도중 발생하는 예외들을 처리하면 발생오류들을 쉽게 파악하는데 도움이 됩니다.
try ~ except 문법을 사용하여 예외 처리를 합니다.
try:
실행문1
except 발생오류:
예외처리문
예외 상황 처리
예시1) 인덱스 에러
flist = ['img1.png','img2.png','img3.png']
flist[3]
예외 처리 후에는 예외 상황을 쉽게 알 수 있다.
flist = ['img1.png','img2.png','img3.png']
try:
flist[3]
except:
#예외 상황이 발생했다면, 아래 코드 실행
print('인덱스 에러가 발생했습니다.')
에러를 구체적으로 명시해 예외 처리할 수도 있다.
flist = ['img1.png','img2.png','img3.png']
try:
flist[3]
except IndexError as ie: # 에러를 구체적으로 명시
print(ie)
print('인덱스 에러가 발생했습니다.')
>> list index out of range 인덱스 에러가 발생했습니다.
오류 회피하기
위의 예시는 에러가 발생했을 때 어떤 에러가 발생했는지 알 수 있는 코드였습니다.
코딩을 하다보면 특정 오류가 발생할 경우 코드를 이어서 진행해야 할 때가 있습니다.
이때, try ~ except ~else를 사용합니다.
try :
실행문1
except 발생오류 :
예외처리문
else :
예외가 아닐 경우 실행할 것
예시2) 나이 확인
# 나이를 입력받아서 미성년자는 출입을 금하고 성인만 입장을 하게 한다.
# 단, 나이는 정수로만 입력받을 수 있다.
try:
age = int(input('당신의 나이는?'))
except:
print('나이를 제대로 입력하시고 다음에 입장해주세요.')
else:
if age < 20:
print('미성년자는 출입이 안 됩니다.')
else:
print('환영합니다')
예시3) 에러 파일 제외 파일 출력하기
flist = ['./data/ANSI.txt','./data/utf8.txt']
for fname in flist:
# print(fname)
try:
with open(fname,'r',encoding='utf-8') as f:
print(f.read())
except UnicodeDecodeError as ud:
print(ud,fname)
print('=' * 50)
pass
'Study' 카테고리의 다른 글
파이썬) 파일과 폴더 다루기(2) (0) | 2024.03.12 |
---|---|
파이썬) 파일과 폴더 다루기(1) (0) | 2024.02.24 |
데이터 전처리 - 스케일링 (0) | 2024.02.24 |
데이터 전처리 - 결측치 처리(1) (0) | 2024.02.12 |
광학문자판독기 : OCR (0) | 2024.02.08 |