[파이썬] raise 문을 활용한 제어 흐름

파이썬에서 raise 문은 예외를 일으키는 데 사용됩니다. 이를 통해 프로그램의 제어 흐름을 조작하고 오류 조건을 처리할 수 있습니다. raise 문을 활용하여 예외를 발생시키면 해당 예외를 처리하는 코드 블록으로 제어 흐름이 전달됩니다.

raise 문의 기본 구문

Raise 문의 기본 구문은 다음과 같습니다:

raise [Exception]

위의 구문에서 [Exception]은 일반적으로 파이썬 내장 예외 클래스의 인스턴스이며, 특정 예외를 지정할 수도 있습니다. 예를 들어, TypeError를 일으키고자 한다면 raise TypeError()와 같이 작성할 수 있습니다.

예외 발생시키기

예외를 발생시키기 위해 raise 문을 사용할 수 있습니다. 예를 들어, 숫자를 입력받고 음수인 경우 예외를 발생시킬 수 있습니다. 다음은 이를 구현한 예시 코드입니다:

try:
    num = int(input("Enter a number: "))
    if num < 0:
        raise ValueError("Negative numbers are not allowed.")
    else:
        print("The number is:", num)
except ValueError as e:
    print("Invalid input:", str(e))

위의 코드에서, 사용자로부터 숫자를 입력 받은 후 num 변수에 저장합니다. 만약 입력된 숫자가 음수라면 ValueError 예외를 발생시킵니다. 예외가 발생하면 except 블록에서 해당 예외를 처리하고 메시지를 출력합니다.

직접 정의한 예외 발생시키기

파이썬에서는 사용자가 직접 예외를 정의하고 발생시킬 수도 있습니다. 예외 클래스를 정의하고 raise 문을 사용하여 해당 예외를 발생시킬 수 있습니다. 다음은 예외 클래스를 정의하고 발생시키는 예시 코드입니다:

class CustomException(Exception):
    pass

try:
    value = input("Enter a value: ")
    if not value.isnumeric():
        raise CustomException("Invalid input: must be a number.")
    else:
        print("The value is:", value)
except CustomException as e:
    print(str(e))

위의 코드에서는 CustomException이라는 사용자 정의 예외 클래스를 정의하고 있습니다. 사용자로부터 입력받은 값이 숫자가 아닌 경우 CustomException을 발생시킵니다. 예외가 발생하면 except 블록에서 해당 예외를 처리하고 메시지를 출력합니다.

결론

파이썬의 raise 문을 활용하여 예외를 발생시키고 이를 통해 프로그램의 제어 흐름을 조작할 수 있습니다. 예외 처리를 통해 오류 조건을 감지하고 적절한 조치를 취할 수 있으며, 사용자 정의 예외 클래스를 생성하여 필요에 맞게 예외를 발생시킬 수도 있습니다.