본문 바로가기
  • 紹睿: 자유롭고 더불어 사는 가치있는 삶
Data/python·알고리즘

[python 기초] Exception 처리

by 징여 2018. 6. 29.
반응형

Exception


exceptional condition: error상황을 맏으면 raise exception

프로그램이 exception을 적절하게 처리하지 못하면 error message(=traceback)와 함께 프로그램을 종료시킨다.

- raise(): 의도적으로 exception을 발생시킴

raise Exception

#     raise Exception
# Exception

- exception Hierarchy: https://docs.python.org/3/library/exceptions.html#exception-hierarchy

- Custom Exception: 개발자가 직접!

예외상황이 되었을때, "이떻게 처리해라!!"라고 지정해 줄수 있다.(후속처리)

 

Exception을 이용하면 방어적으로 코딩이 가능해진다.

 

1. Catching Exception

- 처리순서 (trapping): try except

 

2. Exception과 함수

함수 내에서 exception이 발생했는데 적절히 처리하지 못하면, 그 함수를 호출한 곳으로 propagate (bubble-up)

 

3. Exception의 처리(Handling an exception)

try:
    의도하는 작업:
except ExceptionI:
    ...
except ExceptionII:
    ...
else:
    if there is no exception then execute this block

finally: # 반드시

 

예시)

while True:
    try:
        n = int(input("Enter a integer: "))
        print('Success')
        break
    except ValueError:
        print('No valid Integer! Try again...')
        
# Enter a integer: 1
# Success

# Enter a integer: .12
# No valid Integer! Try again...
# Enter a integer:
# x = 5 +'ham'
# TypeError: unsupported operand type(s) for +: 'int' and 'str'
try:
    x = 5 +'ham'
except:
    print('mistakes')
    
# mistakes​

 

반응형

댓글