Custom Exception & raise

Sung Jun Jin·2020년 8월 18일
0
post-thumbnail

파이썬에서 try catch문을 이용해 예외를 발생시킬 수 있다. 지금까지 파이썬에서 정해진 예외만 처리했다면 이제는 개발자가 원하는 Custom Exception(user-defined exception)을 설계할 수 있고 원하는 지점에서 예외를 발생시켜보자

Custom Exception

  1. 우선 CustomException을 만들어준다.

exception.py

class CustomException(Exception):

	def __str__(self):
    	return "Custom_Exception_Error_Message")

위 코드처럼 Exception 클래스를 상속받아 개발자가 직접 원하는 Exception을 커스터마이징하여 사용할 수 있다. (Exception 클래스 외에 DRF에서는 APIException 클래스도 상속받아 사용하기도 한다)

__str__() 메소드를 통해 객체 내부의 메시지를 리턴하도록 설계했다.

Raise

Custom Exception을 설계해주고 난 뒤, views.py에서 적절한 곳에 예외를 발생시켜보자.

views.py

from .exceptions import CustomException

@api_view([GET])
def test(request):
	num = 1
    
    try:
    	if num == 1:
        	#예외 발생
         	raise CustomException
        
        return Response(status=200)
        
    except Exception as e:
    	return Response({"message": str(e)}, status=400)
       	

코드가 실행되는 과정은 다음과 같다

  1. 먼저 exception.py에서 미리 정의한 CustomException 클래스를 import 해준다.

  2. num이라는 변수가 1이 되었을때 CustomException 예외가 발생하도록 코드를 설계한다.

  3. raise 구문에서 예외가 발생하면 프로그램은 raise 구문 아래에 있는 코드의 실행을 생략하고 바로 except 구문으로 넘어간다.

  4. 마지막으로 CustomException에서 설계한 예외 클래스의 메세지는 e 변수에 담긴다.

실행결과

profile
주니어 개발쟈🤦‍♂️

0개의 댓글