박미미의 지식에서 쌓는 즐거움

파이선:: 예외처리 (try, 강제예외) 본문

IT 공부/파이썬 공부

파이선:: 예외처리 (try, 강제예외)

낑깡좋아 2019. 7. 11. 00:30

예외처리 코드

try:

<예외 발생 가능성이 있는 문장>

except <예외 종류>:

<예외 처리 문장>

except (예외 1, 예외 2):

<예외 처리 문장>

except 예외 as 인자:

<예외 처리 문장>

else:

<예외가 발생하지 않은 경우 수행될 문장>

finally:

<예외 발생 유무에 상관없이 try블록 이후 수행할 문장>

 

 

 

# test01.py

# 함수 정의

def divide(a,b):

return a/b

try:

result = divide(5,"0")

except ZeroDivisionError:

print("0으로 나누면 안됩니다.")

except TypeError:

print("숫자여야 합니다.")

else:

print("결과:{0}".format(result))

finally:

print("무조건 실행.")

print("전체 코드 실행 종료")

 

강제로 예외를 일으키는 경우: raise구문을 사용한다.

 

raise [Exception] : 해당 예외를 발생시킨다.

raise [Exception(data)] : 예외 발생 시 관련 데이터를 전달한다.

raise : 발생된 예외를 상위로 전달한다.

 

# test02.py

class NegativeDivisionError(Exception):

def __init__(self, value):

self.value = value

 

# 함수 정의

def PositiveDivide(a,b):

if ( a < 0 ):

raise NegativeDivisionError(b)

return a/b

try:

result = PositiveDivide(-1,3)

except NegativeDivisionError as e:

print("양수여야 합니다:{0}".format(e.value))

except ZeroDivisionError:

print("0으로 나누면 안됩니다.")

except TypeError:

print("숫자여야 합니다.")

else:

print("결과:{0}".format(result))

finally:

print("무조건 실행.")

print("전체 코드 실행 종료")


Comments