[파이썬] 조건문을 사용한 예외 처리

예외 처리는 프로그램이 실행 중에 발생하는 예외 상황에 대처하는 방법입니다. Python은 예외 처리를 할 수 있는 강력한 기능을 제공하며, 이를 통해 프로그램의 안정성을 향상시킬 수 있습니다. 이번 글에서는 조건문을 사용하여 예외 처리를 하는 방법에 대해 알아보겠습니다.

기본적인 예외 처리

파이썬에서 기본적인 예외 처리는 try, except, else, finally 키워드를 사용합니다. try 블록 내에서 예외가 발생할 수 있는 코드를 작성하고, except 블록에서 해당 예외를 처리합니다.

try:
    # 예외가 발생할 수 있는 코드
    result = 10 / 0
except:
    # 예외 처리 코드
    print("예외가 발생했습니다!")

위의 예제에서는 10 / 0이라는 불가능한 연산을 수행하려고 하므로 ZeroDivisionError 예외가 발생합니다. except 블록에서 예외를 처리하고 “예외가 발생했습니다!”라는 메시지를 출력하여 프로그램이 비정상적으로 종료되지 않도록 합니다.

특정 예외 처리

위의 예제에서는 모든 예외를 동일한 방식으로 처리했습니다. 하지만 때로는 특정한 예외에 대해서만 처리를 수행해야 하는 경우가 있습니다. 이를 위해서는 except 키워드 뒤에 처리하고 싶은 예외 타입을 명시하면 됩니다.

try:
    # 예외가 발생할 수 있는 코드
    result = 10 / 0
except ZeroDivisionError:
    # ZeroDivisionError 예외 처리 코드
    print("0으로 나눌 수 없습니다!")
except:
    # 그 외 예외 처리 코드
    print("예외가 발생했습니다!")

위의 예제에서는 ZeroDivisionError 예외를 별도로 처리하고, 나머지 예외는 except 블록으로 처리합니다.

예외 발생시키기

때로는 특정 상황에서 예외를 의도적으로 발생시켜야 할 때가 있습니다. 이를 위해 raise 키워드를 사용할 수 있습니다.

age = -1

try:
    if age < 0:
        raise ValueError("나이는 양수만 가능합니다.")
except ValueError as e:
    print(e)

위의 예제에서는 age 변수의 값이 유효하지 않을 경우, ValueError 예외를 발생시킵니다. 이 예외는 except 블록에서 처리되어 “나이는 양수만 가능합니다.”라는 메시지를 출력합니다.

조건문을 통한 예외 처리

조건문을 사용하여 특정 조건에만 예외 처리를 수행할 수도 있습니다. 예를 들어, 파일을 열고 읽는 동작에서 파일이 존재하지 않는 경우에만 예외 처리를 수행할 수 있습니다.

filename = "data.txt"

try:
    if not os.path.exists(filename):
        raise FileNotFoundError(f"{filename} 파일이 존재하지 않습니다.")
    else:
        with open(filename, "r") as file:
            content = file.read()
            print(content)
except FileNotFoundError as e:
    print(e)

위의 예제에서는 os.path.exists() 함수를 사용하여 파일의 존재 여부를 확인합니다. 파일이 존재하지 않으면 FileNotFoundError 예외를 발생시킵니다. 이를 통해 파일이 존재하지 않을 때에만 예외 처리를 수행하고, 그 외의 경우는 일반적인 동작을 수행합니다.

조건문을 사용한 예외 처리는 프로그램의 특정 상황에 따라 예외 처리를 세밀하게 조정할 수 있는 유용한 방법입니다. 적절한 예외 처리를 통해 프로그램의 안정성을 높이고, 예외 상황에서도 원활한 프로그램 실행을 보장할 수 있습니다.