본문 바로가기
Python 파이썬/기초 & 내장모듈

python ) 예외 오류 처리 try

by 하이방가루 2022. 3. 11.
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
반응형

댓글