본문 바로가기

파이썬 예외 처리 본문

개발/Python

파이썬 예외 처리

Louisus 2020. 6. 10. 22:58
728x90

# 예외 처리
#
파이썬 예외처리의 이해

#
예외 종류
#
문법적으로 에러가 없지만, 코드 실행(런타임) 프로세스에서 발생하는 예외 처리도 중요
# 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
Comments