1. Exception
# -*- coding:utf-8 -*-
import sys
try:
10/0
except:
print(sys.exc_info())
실행결과 : (<class 'ZeroDivisionError'>, ZeroDivisionError('division by zero',), )
exc_info -> Return형이 Error 객체 -> 로그데이터 쌓을 때 사용
2.
# -*- coding:utf-8 -*-
import sys
try:
#10/0
a = int('string')
except:
print(sys.exc_info())
실행결과 : (<class 'ValueError'>, ValueError("invalid literal for int() with base 10: 'string'",), )
3. ZeroDivisionError에 대하여
4.
# -*- coding:utf-8 -*-
import traceback
def f1(a,b):
return f2(a) + f2(b)
def f2(x):
return 1.0/x
try:
f1(1.0, 0.0)
except:
traceback.print_exc()
실행결과 :
Traceback (most recent call last):
File "C:\pythonwork\MyPython\chap0\Error06.py", line 11, in
f1(1.0, 0.0)
File "C:\pythonwork\MyPython\chap0\Error06.py", line 5, in f1
return f2(a) + f2(b)
File "C:\pythonwork\MyPython\chap0\Error06.py", line 8, in f2
return 1.0/x
ZeroDivisionError: float division by zero
-> 왜 이런걸 쓰나?
except(ZeroDivisionError, IOError): -> 이런건 우리가 Error를 알고 있을 때 사용
하지만, 프로그래밍을 하다보면, 어떤 Exception이 발생할지 모름.
traceback : 스택 추적을 보거나 검색하는 모듈
traceback에 sys를 포함하고 있음
ⓐ traceback.print_exc() : 코드 내용 보여줌
ⓑ sys.exc_info() : 에러 보는게 아니라 실행 정보 보여줌
5.
'국비교육' 카테고리의 다른 글
Python 6일차 (0) | 2019.05.08 |
---|---|
Python 5일차 (0) | 2019.05.07 |
Python 3일차 (0) | 2019.05.02 |
Python 2일차 (0) | 2019.04.30 |
자바 Lambda식 (0) | 2019.04.25 |
댓글