Error 와 Exception
사용 예시
- 파일, 네트워크 등 리소스 정리.
- 사용자 입력 검증.
- 디버깅과 문제 해결.
Error vs Exception
- Error : 프로그램 실행 중 발생하는 문제로, 프로그램이 비정상으로 종료될 수 있음.
- 하지만! 개인적으로 프로그램이 잘 작동되지 않을때 Error 나는걸 선호…
- 개인적으로 Error는 2번째로 좋은 경우라고 생각함…
에러 발생 예시
# 0으로 나누기 (ZeroDivisionError)
print(10 / 0)
# 없는 파일 열기 (FileNotFoundError)
file = open("없는파일.txt", "r")
# 잘못된 인덱스 접근 (IndexError)
numbers = [1, 2, 3]
print(numbers[5])
- Exception: 에러의 한 종류로, edge case 를 다루거나 예외처리를 통해 프로그램이 멈추지 않고 정상적으로 동작하도록 처치 가능!
- 사용 함수
- try: 예외가 발생할 가능성이 있는 코드 작성.
- except: 특정 예외를 처리.
- finally: 예외 발생 여부와 관계없이 항상 실행. (*주로 리소스 정리(파일 닫기, 네트워크 연결 해제 등)에 사용)
- 보통 try 와 except 를 사용하여 예외 처리
# 기본적 예외 처리 try: print(10 / 0) except ZeroDivisionError: print("0으로 나눌 수 없습니다!") # 여러 예외 처리 try: x = int(input("숫자를 입력하세요: ")) result = 10 / x except ValueError: print("유효한 숫자가 아닙니다.") except ZeroDivisionError: print("0으로 나눌 수 없습니다.") # 모든 예외 처리 try: print(10 / 0) except: print("예외가 발생했습니다.") # finally 함수 예시 # Resource 정리 file = None try: file = open("data.txt", "r") data = file.read() except FileNotFoundError: print("파일을 찾을 수 없습니다.") finally: if file is not None: file.close() print("파일을 닫았습니다.") # 예외 없을 경우 try: result = 10 / 2 print(result) except ZeroDivisionError: print("0으로 나눌 수 없습니다.") finally: print("프로그램 종료.")
- 사용 함수
⚠️ 주의: 모든 예외를 처리하면 원인을 알기 어려우므로, 특정 예외를 명시적으로 처리하는 것이 권장.
예외 처리의 중요성
- 프로그램 안정성:
- 예외 처리를 통해 프로그램이 예상치 못한 상황에서도 정상 동작을 유지.
- 디버깅에 도움:
- 예외를 명확히 정의하면 문제 원인을 쉽게 파악 가능.
- 리소스 관리:
- 파일, 네트워크, 데이터베이스 연결 등을 적절히 정리하여 자원 누수 방지.
예외 처리 시 주의사항
- 모든 예외를 무조건 처리하지 말 것:
- 모든 예외를 처리하면 에러 원인을 알기 어려움.
- 예외를 구체적으로 정의하고, 필요한 경우만 모든 예외를 처리.
- 불필요한 예외 처리 피하기:
- 정상적인 흐름에서 발생할 수 있는 상황을 예외 처리하지 않도록 설계.
- 명확한 에러 메시지 제공:
- 사용자와 개발자가 문제를 이해할 수 있도록 의미 있는 메시지를 출력.
'[Python 기초]' 카테고리의 다른 글
[Python-Library] NumPy 및 NumPy 관련 function 정리 (2) | 2024.11.26 |
---|---|
[Python-Library] Pandas 과 Pandas 관련 function 정리 (0) | 2024.11.26 |
[Python] Function(함수) 정리 (0) | 2024.11.26 |
[Python] 제어문 (Control Statements) 정리 (1) | 2024.11.26 |
[Python] Data type 정리 (0) | 2024.11.26 |