파이썬에서 예외를 발생시키는 방법은 assert, raise 두가지가 있다.
그동안 크게 고민없이 사용했는데, 정리가 필요한것 같아 포스팅을 작성한다.
assert
아래처럼 사용법은 굉장히 간단하다.
cond = False
assert cond == True, "condition is not true"
에러가 발생할 경우, 아래처럼 화면에 에러문이 출력된다.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError: condition is not true
그리고 한가지 주의할 점은 __debug__ 상수가 False라면 동작하지 않는다. (기본적으로 True 이다)
raise
사용방법은 역시나 간단하다.
if bottom == 0:
raise ZeroDivisionError
#raise Exception("bottom is zero")
에러가 발생할 경우, 아래처럼 화면에 에러문이 출력된다.
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
ZeroDivisionError
assert, raise 언제 사용할까?
둘다 에러가 발생했음을 알려주고, 프로그램을 종료시킨다. 기능적응로 봐서는 큰 차이가 없어보인다.
하지만, assert는 __debug__ 상수가 False라면 동작하지 않는것 처럼, debugging이나 test 성격이 강하다.
__debug__ 상수에 따라서 동작하지 않을수 있으므로 실제 서비스코드에서는 사용을 지양해야 한다.
unittest 처럼 시험이나 디버깅을 위한 목적이라면 assert, 실제 서비스에게 상태를 알리는 것이 목적이라면 raise를 사용하자.
반응형
'IT > Python' 카테고리의 다른 글
파이썬 셀레니움 find_element_by, find_elements_by 정리 (python selenium) (0) | 2021.01.22 |
---|---|
pandas itertuples, iterrows 성능 및 사용법 비교 (0) | 2020.11.27 |