본문 바로가기

Python

[Python] 파이썬 raise 구문

반응형


raise 구문

이상하게 들리겠지만 프로그래밍을 하다보면 일부러 예외를 발생시키는 상황이 있습니다. 가장 대표적인 상황으로 구현하지 않고 남겨둔 함수의 내부를 개발자가 꼭 작성할 수 있도록 강제하는 상황입니다.

def count(self): 
    pass 


개발을 하다보면 함수의 이름만 선언해 놓고 내부 구현은 하지 않고 남겨두는 경우가 많습니다. 이때는 아래 상황 처럼 pass 키워드를 통해서 내부 기능은 구현하지 않고 넘어갈 수 있습니다. 하지만 이 방법은 개발자가 해당 코드를 보지 않으면 내부가 구현되었는지 안되었는지 알지도 모른채 지나갈 수도 있습니다. 이럴때 개발되지 않은 부분에 대한 강제성을 부여할 수 있는데요. 이때는 아래와 처럼 '구현되지 않은 부분'에 대한 에러를 발생하도록 만들 수 있습니다.  

def count(self): 
    raise NotImplementedError


그러면 해당 함수가 호출되어서 실행되면 NotImplementedError가 발생되게 됩니다. 그러면 개발자는 해당 함수가 구현되지 않았다는 것을 알 수 있게 됩니다. 이때 예외 상황을 발생시키는 키워드가 바로 raise 입니다. raise 키워드는 아래와 같이 사용할 수 있습니다.

raise 예외 객체

raise 키워드에 예외 객체 이름을 두면 됩니다. 사용자가 예외 클래스를 따로 정의해서 사용할 수도 있습니다. 

반응형