기술블로그-Django편

⚠️ raise 문법 완벽 가이드 – 예외 처리의 핵심

Chansman 2025. 4. 29. 22:49

⚠️ raise 문법 완벽 가이드 – 예외 처리의 핵심

raise는 파이썬에서 직접 에러를 발생시킬 때 사용하는 키워드입니다. 어떤 상황에서 문제가 생겼다고 판단되면 raise를 사용하여 프로그램의 흐름을 즉시 중단하고 에러를 발생시킵니다.


✅ 기본 문법

raise 에러종류("에러 메시지")

예:

raise ValueError("값이 잘못되었습니다")
raise PermissionError("접근 권한이 없습니다")
raise Http404("페이지를 찾을 수 없습니다")  # Django에서 자주 사용

🎯 핵심 개념

  • raise는 실행되는 순간 그 아래의 코드는 더 이상 실행되지 않습니다.
  • 반드시 try-except 안에서 써야 하는 건 아니고, 조건문 안에서 단독으로 쓰기도 합니다.
  • else 문 없이도 흐름 제어가 가능합니다.

🧪 Django에서의 실전 예시

from django.http import HttpResponse, Http404

def movie_detail(request, index):
    if index >= len(movie_list):
        raise Http404("영화 정보를 찾을 수 없습니다")

    movie = movie_list[index]
    response_text = f"<h1>{movie['title']}</h1> <p>감독: {movie['director']}</p>"
    return HttpResponse(response_text)

📌 실행 흐름

  • index가 유효하지 않으면 → raise Http404 실행 → 함수 즉시 종료
  • index가 유효하면 → 아래 코드 정상 실행 → 페이지 반환

즉, raise 이후에는 자동으로 프로그램 흐름이 끊기기 때문에 else 블록이 없어도 되는 것!


❗ raise 사용 시 주의사항

상황 설명

중괄호({}) 안 닫힘 문법 오류 발생 가능
에러 객체 없이 raise만 쓰면? 문법 오류 (TypeError, RuntimeError 등 필요)
Django에서는 Http404, PermissionDenied 등 지정된 예외 사용 권장  

✅ 요약

개념 설명

raise 예외를 강제로 발생시킴
동작 방식 해당 지점에서 함수 즉시 종료, 아래 코드 실행 안 됨
Django에서의 사용 조건 검사 후 raise Http404 등으로 페이지 에러 처리

raise는 에러 처리뿐 아니라 조건 분기, 사용자 권한 제한, 입력값 검증 등 다양한 곳에서 매우 중요하게 사용됩니다. try-except와 함께 쓰면 더욱 강력한 예외 처리 로직도 구축할 수 있어요! 😊