[python] exception / lineno, filename

markyang92·2021년 4월 23일
0

python

목록 보기
19/42
post-thumbnail

모든 예외처리

예외 처리 방식 1.

try:
    # Exception이 발생할 지역
except:
    print('Exception Handling') # Exception Handling

예외 처리 방식 2.

try:
    # Exception이 발생할 지역
except Except:
    print('Exception Handling') # Exception Handling

예외 처리 방식 3.

try:
    # Exception이 발생할 수 있는 지역
except:
    print('Exception Handling') # Exception Handling
except <Exception 종류 1>:
    print('Exception 1 occured')
except <Exception 종류 2>:
    print('Exception 2 occured')
else:
    # try 에서 실행 한 코드가 에러가 없을 경우 이곳 실행
finally:
    항상 실행

예외 처리 방식 4.

try:
    Error 발생 가능 지역
except Exception as e:
    print(e) # 에러 원인 프린트

  • SyntaxError, TypeError, NameError, IndexError, ValueError, KeyError...

SyntaxError: 문법 오류

if True		# : 가 없어서 문법 오류
    pass

TypeError

a = 10
b = 15
print(C)	# 뜬금 C? 참조 없음!!

ZeroDivisionError

print( 100/0 )	# 0으로 나눌 수 없음

IndexError

a = [1,2,3,4,5]
print(a[100])	# ? 범위 벗어남

KeyError

a = { 'name': 'Lee' }
print(a['age'])	# 키 에러 발생

AttributeError

import time
print(time.time2())	# 없는 메서드 호출

ValueError

x = [10, 50, 90]
x.remove(50)
# 여기서 50 없는데 50 찾으면 ValueError

FileNotFoundError

f = open('test.txt', 'r')
# test.txt가 없으면 에러

TypeError

  • 자료형에 맞지 않는 연산 수행

os.path.exists() 익셉션


raise: 익셉션 발생


fileno, filename

from inspect import currentframe, getframeinfo

frameinfo = getframeinfo(currentframe())

print(frameinfo.filename, frameinfo.lineno)

=======================================
from inspect import currentframe, getframeinfo
def debugPrint(frameinfo):
    print("file: {} line: {}".format(frameinfo.filename,frameinfo.lineno))

# usage:
debugPrint(getframeinfo(currentframe()))
profile
pllpokko@alumni.kaist.ac.kr

0개의 댓글