본문 바로가기
Computer Science/[20-3,4] Python Basic

[Python] 에러 내용을 경우에 따라 바꾸면서 AssertionError 발생시키는 방법

by gojw 2020. 3. 3.

Assertion Error란 조건이 거짓인 경우에 실행을 중단시키고 내는 에러를 말한다.

 

https://www.geeksforgeeks.org/python-assertion-error/

 

1. assert

assert [조건], [에러 내용]

assert는 조건을 만족하지 않을 경우에 에러를 발생시킨다.

 

# letter이 string type이 아닌 경우에 error를 발생시킨다
>>> assert type(letter) == str, 'invalid type'

# Traceback (most recent call last):
#    AssertionError: invalid type

 

2. raise

에러 내용에 if문을 사용하고 싶다면 assert 대신 raise를 사용하면 된다.

raise는 if문으로 조건을 적어준 다음에 사용한다.

 

# 문제

① count가 100이 아닌 경우에 error를 발생시킨다.

② count가 1인 경우에 에러 내용이 invalid format (1 digit) 이다.

③ count가 1보다 크고 100이 아닌 경우에 에러 내용이 invalid format ({count 수} digits) 이다.

 

>>> if count != 100:
    	raise AssertionError('invalid format (1 digit)') if count == 1 \
        	else AssertionError(f'invalid format ({count} digits)')

f string은 assert인 경우에도 되지만, assert에서는 if else문으로 경우에 따라 내용을 다르게 내지 못했다.

댓글