Python에서 예외를 처리하는 방법(Try-Except-Finally)
try, Except, else 및 finally 블록을 사용하여 Python에서 예외를 처리하는 방법을 알아보세요. 오류가 없고 충돌에 강한 Python 코드를 작성하세요.
개요
파일 누락, 잘못된 사용자 입력, 데이터베이스 오류 또는 네트워크 중단과 같은 예상치 못한 상황을 처리할 수 있는 강력한 소프트웨어를 준비해야 합니다. Python에서 오류가 발생하면 예외가 발생합니다. 처리되지 않은 채로 두면 예외로 인해 프로그램이 즉시 중단되고 역추적 스택이 인쇄됩니다.
런타임 오류를 관리하기 위한 Python의 기본 도구는 `try-exc` 블록입니다. 오류를 발생시킬 수 있는 코드를 'try' 블록 안에 배치하고, 하나 이상의 'Exception' 블록 안에 오류 처리 코드를 정의합니다. 일반적인 예외(`제외:`)를 모두 포착하면 버그를 숨길 수 있으므로 정확한 예외 클래스(예: `ValueError` 또는 `ZeroDivisionError`)를 지정하는 것이 좋습니다.
예외 흐름을 더욱 표현적으로 만들기 위해 Python은 `else`와 `finally`라는 두 개의 추가 블록을 제공합니다. 'else' 블록은 'try' 블록에서 예외가 발생하지 않은 경우에만 실행됩니다. 이는 성공 시에만 실행되어야 하는 코드에 유용합니다. `finally` 블록은 예외 발생 여부에 관계없이 *항상* 실행되므로 파일 닫기나 데이터베이스 연결과 같은 정리를 위한 완벽한 장소입니다.
코드 및 실행 출력
이 스크립트는 try, Except, else 및 finally를 사용하여 Python에서 강력한 오류 처리를 보여줍니다.
def divide_numbers(a, b):
try:
# Code that might raise an exception
result = a / b
except ZeroDivisionError:
# Handling a specific exception
print("Error: Cannot divide by zero!")
except TypeError:
# Handling another exception type
print("Error: Inputs must be numbers!")
else:
# Run only if try block succeeded
print(f"Success! Result of {a}/{b} is {result}")
finally:
# Runs no matter what
print("Division attempt completed.")
divide_numbers(10, 2)
print("---")
divide_numbers(10, 0)Success! Result of 10/2 is 5.0
Division attempt completed.
---
Error: Cannot divide by zero!
Division attempt completed.단계별 구현
- 실패할 수 있는 코드를 try 블록 안에 넣으세요.
- 오류를 적절하게 처리하려면 Except ExceptionType: 블록을 사용하여 특정 오류 유형을 포착하세요.
- 성공적인 try 블록에서만 실행되어야 하는 코드에는 else를 사용하세요.
- 오류에 관계없이 정리 작업이 실행되도록 하려면 finally를 활용하세요.
자주 묻는 질문
단일 제외 블록에서 여러 예외를 포착할 수 있나요?
예, (ValueError, TypeError)를 e:로 제외하고 튜플로 전달할 수 있습니다.
나만의 예외를 어떻게 발생시키나요?
raise 키워드와 예외 인스턴스를 사용하십시오: raise ValueError("잘못된 구성 값").
관련 주제
int() 함수를 사용하여 Python에서 문자열을 정수로 변환하는 방법을 알아보세요. 오류를 안전하게 처리하고 숫자를 2진수, 8진수, 16진수로 변환하세요.
Python에서 파일을 읽는 방법(텍스트 및 JSON)Python에서 파일을 읽는 방법을 알아보세요. open 문, readline, readline을 마스터하고 파일 예외를 안전하게 처리하세요.
Python에서 파일에 쓰는 방법(쓰기 및 추가)Python에서 파일에 텍스트를 쓰는 방법을 알아보세요. 안전한 컨텍스트 관리자를 사용하여 쓰기("w") 모드와 추가("a") 모드 간의 차이점을 마스터하세요.
권장 Python 리소스
관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.
Python 루프
Python 루프를 사용하여 데이터를 반복하는 방법을 알아보세요. 대화형 예제를 통해 for 루프, while 루프, 중단, 계속 및 루프 모범 사례를 마스터하세요.
Python 문자열 메서드 치트 시트
Python 문자열 조작에 대한 완전한 참조 가이드입니다. 문자열 속성의 서식 지정, 검색, 분할, 바꾸기 및 확인을 마스터합니다.
Python 대 JavaScript: 어떤 프로그래밍 언어가 가장 좋나요?
Python과 JavaScript를 포괄적으로 비교합니다. 구문 차이점, 성능, 사용 사례(백엔드와 프런트엔드) 및 코딩 예제를 살펴보세요.