반응형
Exception Handling (예외 처리)
예외 처리는 프로그램 실행 중 발생하는 오류를 관리하고 처리하는 기법입니다.
- 예외 처리를 통해 프로그램의 비정상 종료를 방지하고, 사용자에게 유용한 오류 메시지를 제공하여 프로그램의 안정성과 신뢰성을 높일 수 있습니다.
예외와 오류의 차이
- 오류 (Error): 프로그램 실행을 중단시키는 심각한 문제로, 일반적으로 복구가 불가능한 상황을 의미합니다.
- 예를 들어, 메모리 부족, 시스템 충돌 등이 있습니다.
- 예외 (Exception): 프로그램 실행 중 발생할 수 있는 처리 가능한 오류로, 예외 처리를 통해 복구할 수 있습니다.
- 예를 들어, 파일을 찾을 수 없음, 0으로 나누기 등이 있습니다.
예외의 종류
내장 예외 (Built-in Exceptions), 사용자 정의 예외 (User-defined Exceptions)에 데하여 설명해 보겠습니다.
내장 예외 (Built-in Exceptions)
- Python에서 미리 정의한 예외로, 자주 발생하는 오류 상황을 처리할 수 있습니다.
- ZeroDivisionError: 0으로 나누기를 시도할 때 발생
- ValueError: 잘못된 값을 사용할 때 발생
- FileNotFoundError: 파일을 찾을 수 없을 때 발생
사용자 정의 예외 (User-defined Exceptions)
- 특정 상황에서 발생하는 예외를 처리하기 위해 사용자가 직접 정의한 예외입니다.
- 예를 들어 도메인 특화 예외를 정의하여 코드의 가독성과 유지보수성을 높일 수 있습니다.
class CustomError(Exception):
pass
def check_value(value):
if value < 0:
raise CustomError("Value cannot be negative")
return value
예외의 종류
예외의 종류는 3가지가 있습니다. try와 except, finally, raise가 있습니다.
try와 except
- 예외가 발생할 수 있는 코드를 try 블록에 작성하고, 예외 발생 시 except 블록에서 처리합니다.
try:
x = 1 / 0
except ZeroDivisionError:
print("Cannot divide by zero")
finally
- 예외 발생 여부와 상관없이 항상 실행되는 블록입니다.
- Resource 해제 등 꼭 실행되어야 하는 코드를 작성합니다.
try:
file = open("example.txt", "r")
data = file.read()
except FileNotFoundError:
print("File not found")
finally:
file.close()
raise
- 강제로 예외를 발생시키는 구문입니다.
- 특정 조건에서 사용자 정의 예외를 발생시킬 때 유용합니다.
def check_value(value):
if value < 0:
raise ValueError("Value cannot be negative")
return value
예외 처리 이유
- 안정성 확보: 예외 처리를 통해 예기치 않은 오류로 인한 프로그램 중단을 방지할 수 있습니다.
- 디버깅 용이: 구체적인 예외 메시지를 제공하여 디버깅을 쉽게 수행할 수 있습니다.
- 사용자 경험 개선: 사용자에게 유용한 오류 메시지를 제공하여 프로그램 사용성을 높일 수 있습니다.
반응형
'⌨️ Python' 카테고리의 다른 글
[Python] Logging (로깅) & 정규 표현식 (0) | 2024.07.17 |
---|---|
[Python] Advanced Data Type (고급 자료형) (0) | 2024.07.16 |
[Python] Module, Package, Virtual Environment (모듈, 패키지, 가상환경) (0) | 2024.07.15 |
[Python] Database - 데이터베이스 (0) | 2024.07.15 |
[Python] 파일 입출력 (0) | 2024.07.15 |