반응형
9.1 try, except, else, finally 구문
예외 처리는 try
블록을 사용하여 시도하고, except
블록을 사용하여 예외를 처리합니다. 또한, else
와 finally
블록을 사용할 수도 있습니다.
try와 except: try
블록 내에서 오류가 발생하면 except
블록이 실행됩니다.
try:
x = 10 / 0
except ZeroDivisionError:
print("Division by zero is not allowed.")
else: try
블록이 성공적으로 실행되면 else
블록이 실행됩니다.
try:
x = 10 / 2
except ZeroDivisionError:
print("Division by zero is not allowed.")
else:
print("Division successful.")
finally: 예외 발생 여부에 상관없이 항상 실행됩니다.
try:
x = 10 / 0
except ZeroDivisionError:
print("Division by zero is not allowed.")
finally:
print("This block is always executed.")
9.2 예외 발생시키기 (raise)
파이썬에서는 raise
키워드를 사용하여 강제로 예외를 발생시킬 수 있습니다.
def divide(a, b):
if b == 0:
raise ValueError("Division by zero is not allowed.")
return a / b
try:
result = divide(10, 0)
except ValueError as e:
print(e)
9.3 사용자 정의 예외
사용자 정의 예외를 만들려면 기본 예외 클래스(Exception
)를 상속받아 새로운 예외 클래스를 정의합니다.
class CustomError(Exception):
def __init__(self, message):
self.message = message
super().__init__(self.message)
try:
raise CustomError("This is a custom error.")
except CustomError as e:
print(e)
예외 처리 예제
다음은 예외 처리를 사용하여 파일을 읽는 예제입니다. 파일이 존재하지 않으면 예외를 발생시키고, 예외를 처리하여 사용자에게 적절한 메시지를 출력합니다.
def read_file(filename):
try:
with open(filename, "r") as file:
return file.read()
except FileNotFoundError:
print(f"The file '{filename}' does not exist.")
except Exception as e:
print(f"An error occurred: {e}")
finally:
print("Execution completed.")
content = read_file("example.txt")
반응형
'Python 문법 > Python 기본 문법(3.10 기준)' 카테고리의 다른 글
[python3.10 기본] 12. 표준 라이브러리 및 외부 라이브러리 사용 (0) | 2024.07.01 |
---|---|
[python3.10 기본] 11. 모듈과 패키지 (1) | 2024.07.01 |
[python3.10 기본] 8. 파일 입출력 (0) | 2024.07.01 |
[python3.10 기본] 7. 문자열 조작 (1) | 2024.07.01 |
[python3.10 기본] 6. 데이터 구조 (1) | 2024.07.01 |