Assertion 구문은 어떤 조건을 테스트하는 디버깅 보조 도구이다.
assertion 구문을 적절하게 위치시켜 오류(버그) 발생 시 AssertionError
예외가 발생하면 위치에 대한 stacktrace를 확인하여 버그를 쉽게 해결할 수 있다.
예외를 발생시키는 예외처리와 비슷하지만 예외처리는 에러가 발생했을 때 어떤 처리를 하기 위한 코드이고,assertion은 어떤 조건이 true임을 보증하기 위해서 사용하는 것이다.
어떠한 조건이 참일 때 코드는 보장되었다고 주장하고 이 조건이 거짓이라는 것은 보장하지 않은 동작이니 AssertionError
를 발생시키는 흐름이다.
이처럼 실수를 가정해 값을 보증하는 방식으로 코딩하는 것을 방어적 프로그래밍이라고 부른다.
assert [조건],[오류메시지]
assert 키워드 뒤에 조건을 입력한 뒤 콤마(,)와 오류메시지를 입력한다.
이 assert는 조건이 참인 경우 코드를 진행하고 false인 경우 AssertionError를 발생시킨다.
lists = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 3.14, 11, 12, 13]
def test(i):
assert type(i) is int, '정수 아닌 값이 있습니다.'
for i in lists:
test(i)
#결과
AssertionError: 정수 아닌 값이 있습니다.