반응형
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
반응형
'Data > python·알고리즘' 카테고리의 다른 글
[python] jupyter notebook 코드를 tistory에 올리는 법. (0) | 2018.09.16 |
---|---|
[python] 알아두면 좋은 Standard Library (0) | 2018.06.29 |
[python 기초] OOP - class와 Object (0) | 2018.06.29 |
[python 기초] python의 file mode (0) | 2018.06.29 |
[python 기초] python의 함수에 대하여 (0) | 2018.06.28 |
댓글