Python/Python 기초

[Python] Python Exception Handling

데이터 세상 2021. 2. 24. 11:19
728x90
반응형

Python 오류

 

Built-in Exceptions — Python 3.9.2 documentation

Built-in Exceptions In Python, all exceptions must be instances of a class that derives from BaseException. In a try statement with an except clause that mentions a particular class, that clause also handles any exception classes derived from that class (b

docs.python.org

 

예외 처리(Exception Handling)

try-except-finally 구문

try:
	예외 발생이 예측되는 코드
except<예외 종류>:
	예외 처리를 수행하는 구문
finally:
	마지막에 항상 수행되는 구문

Python 예외 계층 구조

 

내장 예외 — Python 3.9.2 문서

내장 예외 파이썬에서, 모든 예외는 BaseException 에서 파생된 클래스의 인스턴스여야 합니다. 특정 클래스를 언급하는 except 절을 갖는 try 문에서, 그 절은 그 클래스에서 파생된 모든 예외 클래스

docs.python.org

상위 범주 예외 처리:  BaseException에 준하는 Exception을 이용하여  except 절에서 대부분 예외 처리 가능

def get(key, dataset):
    try:
        value = dataset[key]
    # 여러 에외를 동일하게 처리
    except (KeyboardInterrupt, SystemExit):
        print("keyboard interrupt or System Exit 에러") 
    # 하위 범위의 예외 동시 처리
    except Exception as error_message:
        print("look up 에러")
        return error_message
    else:
        return value 
        
print('1. ', end='\t')
print('반환값: ', get(key=3, dataset=(1,2,3)))
print('2. ', end='\t')
print('반환값: ', get(key='age', dataset={'name':'test'}))

>>
1.      look up 에러
반환값:  tuple index out of range
2.      look up 에러
반환값:  'age'

raise 문

  • raise 예외클래스('에러 메세지')
  • 특정 예외를 의도적으로 발생
  • Exception 클래스를 상속하는 방식으로 통해 사용자 예외 클래스를 만들 수 있음
    • 예외의 최상위 클래스는 BaseException이나 일반적으로 잘 사용하지 않음
  • 프로그램이 정상적으로 실행될 수 없는 상황일 때 예외를 발생시켜 프로그래머 또는 사용자에게 알림
class MyExceptionError(Exception):
    """Customer Exception"""
    pass

try:
    raise MyExceptionError('Customer Error Message')
except MyExceptionError as error_msg:
    print(error_msg)
    
>>
Customer Error Message

 

assert 문

  • assert 검증식, 오류 메시지
  • 검증식의 상태를 검증하기 위한 명령어
  • 검증식을 계산하여 결과가 참일 때에는 이후 절차로 진행, 거짓일 경우에는 AssertionError 예외 발생
  • 예상치 못한 이벤트가 발생함을 가리키는 것 보다는 내부적으로 정확성을 보장하기 위해 사용하는 것

References

728x90
반응형

'Python > Python 기초' 카테고리의 다른 글

[Python] Python Module  (0) 2021.02.24
[Python] Python Built-in Functions  (0) 2021.02.24
[Python] Python Class  (0) 2021.02.23
[Python] Python File  (0) 2021.02.23
[Python] Python Function  (0) 2021.02.23