728x90
반응형
구문 오류
SyntaxError
구문에 문제가 있으면 프로그램이 실행조차 되지 않는다.
예외 처리 불가능
런타임 오류
Execption을 최상위 클래스로하는 하위 클래스
ValueError, TypeError, IndexError 등등
프로그램 실행 중에 발생하는 오류
예외 처리 방법
if
빠르다
모든 오류를 예상하여 처리하기 힘들다
input_data = input('정수 입력:')
if input_data.isdigit() :
int_data = int(input_data)
else :
print('정수만 입력해주세요!!')
try
if보다 느리지만 큰 차이는 아니다
모든 오류를 처리할 수 있다.
구조
try:
오류가 발생할 가능성이 있는 코드
except :
오류 발생시 처리할 코드
except ValueError as e : -> 특정 에러만 처리하려고 할 때
except [Exception as e] : -> 예상하지 못한 모든 에러를 처리하려고 할 때
[]안에 표현식은 생략가능하다.
print(e) -> 런터임 중 오류가 발생해도 메시지를 보여주고 프로그램은 계속 진행된다.
pass -> 아무것도 하지 않고 오류가 발생해도 프로그램은 계속 진행된다.
else:
오류가 발생하지 않았을 때 처리할 코드
꼭 쓸 필요는 없다.
finally:
오류 발생여부와 상관없이 무조건 처리해야할 코드
return이나 break로 함수나 반복문을 빠져나가더라도 실행한다.
try: ~를 쓰면 except나 finally는 꼭 뒤에 와야한다.
try :
input_data = input('정수입력: ')
int_data = int(input_data)
except ValueError as e :
print('정수만 입력해주세요!!')
print(e)
except Exception as e:
print('예상하지 못한 에러 발생!!')
print(e)
print('프로그램이 종료되었습니다.')
728x90
반응형
'Python 파이썬 > 기초 & 내장모듈' 카테고리의 다른 글
python ) 클래스 class (0) | 2022.03.11 |
---|---|
python ) 모듈과 패키지 (0) | 2022.03.11 |
python ) 함수 function (0) | 2022.03.08 |
python ) 이터레이터와 제너레이터, 참조 (0) | 2022.03.08 |
python ) 범위 자료형 range (0) | 2022.03.08 |
댓글