파이썬에서는 예외가 try-except
블록을 사용하여 처리됩니다. 기본 구조에는 try
블록 내에서 예외가 발생할 수있는 코드를 작성하고 except
블록에서 예외를 처리하는 것입니다. 다음은 ZeroDivisionError
처리하는 방법의 예입니다.
<code class="python">try: result = 10 / 0 except ZeroDivisionError: print("Error: Division by zero!")</code>
다른 유형의 예외를 처리하는 블록을 except
더 많은 것을 포함하여 여러 예외를 처리 할 수 있습니다. 또한 일반적인 처리되지 않은 예외를 제외하고 except
제외를 사용할 수 있습니다.
<code class="python">try: result = 10 / 0 except ZeroDivisionError: print("Error: Division by zero!") except ValueError: print("Error: Invalid value!") except: print("An unexpected error occurred!")</code>
Python을 사용하면 raise
Keyword를 사용하여 예외를 제외하고는 사용자 정의 오류 처리 및 except
블록에서 일부 작업을 수행 한 후 예외를 다시 작성하는 데 유용 할 수 있습니다.
예외를 효과적으로 관리하는 것은 강력한 파이썬 코드를 작성하는 데 중요합니다. 모범 사례는 다음과 같습니다.
except
광범위한 것을 사용하지 않고 구체적인 예외를 포착하십시오. 이를 통해 발생한 오류 유형을 더 잘 이해하고 적절하게 처리하는 데 도움이됩니다.finally
정리에 사용하십시오 : finally
블록을 사용하여 예외가 제기되었는지 여부에 관계없이 파일 핸들, 네트워크 연결 또는 데이터베이스 연결과 같은 리소스가 올바르게 닫혀 있는지 확인하십시오.except
맨손을 피하십시오 : 절정을 except
SystemExit
및 KeyboardInterrupt
와 같은 시스템 노출 예외를 포함하여 예상하지 못하는 예외를 제외하고는 예외를 제외하고. except Exception
대부분의 예외를 포착하지만 시스템 노출은 아니기 때문에 사용하는 것이 좋습니다.with
) 사용 : 정리 해야하는 리소스로 작업 할 때는 자원 관리 및 정리를 자동으로 처리하는 컨텍스트 관리자를 사용하십시오.logging
모듈을 사용하여 예외를 효과적으로 기록하십시오. try-except
및 try-finally
Blocks는 Python Exception Handling에서 다양한 목적을 제공합니다.
Try-Excrect :이 블록은 try
블록 내에서 발생하는 예외를 잡고 처리하는 데 사용됩니다. except
블록은 try
블록에서 예외가 제기되는 경우에만 실행됩니다. 주요 목적은 예외를 우아하게 처리하고 가능한 경우 프로그램의 실행을 계속하는 것입니다.
<code class="python">try: result = 10 / 0 except ZeroDivisionError: print("Error: Division by zero!")</code>
Try-Finally :이 블록은 try
블록에서 예외가 제기되었는지 여부에 관계없이 finally
블록에서 코드를 실행하는 데 사용됩니다. finally
블록은 일반적으로 청소 작업에 사용되므로 리소스가 올바르게 출시되도록합니다.
<code class="python">file = None try: file = open("example.txt", "r") content = file.read() finally: if file: file.close()</code>
요약하면, try-except
예외를 처리하는 데 중점을두고, try-finally
예외가 발생하더라도 특정 코드 (종종 정리 코드)가 항상 실행되도록합니다.
로깅 예외는 효과적으로 응용 프로그램을 디버깅하고 유지 관리하는 데 중요합니다. 파이썬에서 예외를 기록하는 몇 가지 전략은 다음과 같습니다.
logging
모듈 사용 : Python의 logging
모듈은 Python 프로그램에서 로그 메시지를 방출하기위한 유연한 프레임 워크를 제공합니다. 이 모듈을 콘솔에 인쇄하는 대신 예외를 예외로 사용하는 것이 좋습니다.
<code class="python">import logging logging.basicConfig(filename='app.log', level=logging.ERROR) try: result = 10 / 0 except ZeroDivisionError as e: logging.error("An error occurred", exc_info=True)</code>
컨텍스트 포함 : 항상 로그 메시지에 관련 컨텍스트를 포함하십시오. 여기에는 사용자 ID, 트랜잭션 ID 또는 오류를 소스로 다시 추적하는 데 도움이되는 기타 정보가 포함될 수 있습니다.
<code class="python">logging.error("An error occurred while processing user %s", user_id, exc_info=True)</code>
exc_info=True
매개 변수를 사용하여 예외의 전체 추적을 기록합니다. 이것은 예외가 어디서, 왜 발생했는지에 대한 자세한 정보를 제공합니다.사용자 정의 로그 형식 : 타임 스탬프, 심각도 레벨 및 기타 관련 세부 정보가 포함 된 사용자 정의 로그 형식을 구성합니다. 이것은 로그를보다 효과적으로 분석하는 데 도움이됩니다.
<code class="python">logging.basicConfig( format='%(asctime)s - %(levelname)s - %(message)s', filename='app.log', level=logging.ERROR )</code>
이러한 관행을 따르면 예외가 효과적으로 기록되도록하여 Python 응용 프로그램에서 문제를 쉽게 진단하고 수정할 수 있습니다.
위 내용은 파이썬의 예외를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!