1. 예외 처리란?
예외 처리는 프로그램의 안정성과 신뢰성을 높이는 중요한 방법
프로그램 실행 중 발생할 수 있는 오류나 예상치 못한 상황을 말하며,
이를 적절히 처리하지 않으면 프로그램이 중단될 수 있다.
2. try 블록
try 블록 안에 예외가 발생할 가능성이 있는 코드를 배치한다. 이 블록은 필수적으로 사용해야 한다.
try:
# 예외가 발생할 가능성이 있는 코드
result = 10 / 0
except:
# 예외 처리 코드
print("An error occurred")
3. except 구문
except 구문을 사용하여 특정 예외를 처리한다.
여러 except 구문을 사용하여 다양한 예외 유형을 개별적으로 처리할 수 있다.
try:
# 예외가 발생할 가능성이 있는 코드
result = 10 / 0
except ZeroDivisionError:
# 특정 예외 처리
print("Cannot divide by zero!")
3.1 except 구문으로 여러 예외 처리
try:
# 예외가 발생할 가능성이 있는 코드
result = 10 / "two"
except (ZeroDivisionError, TypeError):
# 여러 예외 처리
print("Invalid operation")
3.2 예외 에러 메시지 접근
except 구문에서 예외 인스턴스에 접근하여 에러 메시지나 추가 정보를 얻을 수 있다.
또는 except 구문을 여러 개 사용해도 된다.
try:
# 예외가 발생할 가능성이 있는 코드
result = 10 / "two"
except TypeError as e:
# 예외의 에러 메시지 출력
print(f"Error: {e}")
4. else 구문
else 블록은 예외가 발생하지 않았을 때 실행되는 코드를 담는다.
이 블록은 선택적으로 사용할 수 있으며, try 블록 다음에 위치해야 한다.
try:
# 예외가 발생할 가능성이 있는 코드
result = 10 / 2
except ZeroDivisionError:
# 예외 처리
print("Cannot divide by zero!")
else:
# 예외가 발생하지 않았을 때 실행
print("Result:", result)
5. finally 구문
예외 발생 여부와 관계없이 항상 실행되는 코드를 담는다.
주로 자원 해제와 같은 정리 작업에 사용된다.
try:
# 예외가 발생할 가능성이 있는 코드
result = 10 / 2
except ZeroDivisionError:
# 예외 처리
print("Cannot divide by zero!")
finally:
# 예외 발생 여부와 관계없이 항상 실행
print("This block is always executed")
6. raise 명령어
예외를 강제로 발생시켜서 프로그램의 흐름을 제어한다.
raise ExceptionType("에러 메시지")
# ExceptionType: 발생시키고자 하는 예외의 종류
6.1 사용자 정의 예외
사용자 정의 예외 클래스를 만든다.
이 클래스는 Exception 클래스를 상속받아야 한다.
class CustomError(Exception):
pass
def check_value(value):
if value < 0:
raise CustomError("값이 음수일 수 없습니다.")
return value
try:
check_value(-1)
except CustomError as e:
print(f"사용자 정의 예외 발생: {e}")
'Language > Python' 카테고리의 다른 글
[Python] 패키지 설치 및 관리 (0) | 2024.04.27 |
---|---|
[Python] 모듈과 패키지 (0) | 2024.04.27 |
[Python] 파일 입출력 (0) | 2024.04.27 |
[Python] 함수 (0) | 2024.04.24 |
[Python] 패킹과 언패킹 (0) | 2024.04.24 |