Exception Handling
예외 처리(Exception Handling)는 프로그램 실행 중 발생할 수 있는 오류를 안전하게 처리하는 방법입니다. Python에서는 try, except 블록을 사용하여 예외를 처리합니다. 또한, 사용자 정의 예외와 raise 키워드를 통해 예외를 발생시킬 수도 있습니다.
Basic Exceptions
try
블록에서 예외가 발생하면 except
블록으로 처리하고, 예외가 발생하지 않으면 else
블록이 실행됩니다. finally
블록은 예외 발생 여부와 관계없이 항상 실행됩니다.
try:
number = int(input("Enter a number: ")) # 사용자 입력을 받음
result = 10 / number
except ZeroDivisionError:
print("Cannot divide by zero.") # 0으로 나눌 때 발생하는 예외 처리
except ValueError:
print("Invalid input! Please enter a number.") # 숫자가 아닌 값을 입력했을 때 발생하는 예외 처리
else:
print(f"Result: {result}") # 예외가 없을 경우 실행
finally:
print("Execution complete.") # 항상 실행되는 블록
Advanced Exceptions
Custom
사용자 정의 예외를 만들려면 Exception
클래스를 상속받은 새로운 예외 클래스를 정의해야 합니다.
class CustomError(Exception):
def __init__(self, message):
self.message = message
super().__init__(self.message)
def check_age(age):
if age < 0:
raise CustomError("Age cannot be negative.") # 사용자 정의 예외 발생
return age
try:
check_age(-5)
except CustomError as e:
print(f"Error: {e}") # Error: Age cannot be negative.
Raising
raise
키워드를 사용하면 코드에서 명시적으로 예외를 발생시킬 수 있습니다. 예외 처리는 코드의 안정성을 높이고, 오류가 발생해도 프로그램이 비정상 종료되지 않도록 도와줍니다. 예외 처리를 적절히 활용하면 코드의 가독성도 향상됩니다.
def check_number(number):
if number < 0:
raise ValueError("Number must be positive.") # 예외 발생
return number
try:
check_number(-10)
except ValueError as e:
print(f"Error: {e}") # Error: Number must be positive.