이 문서에서는 Try-Exception 블록, 사용자 정의 예외, 예외 연결 및 강화와 같은 고급 기능을 포함하여 Python에서 예외를 처리하는 데 사용되는 다양한 기술을 살펴봅니다.
Python은 프로그래머가 충돌을 방지하는 코드를 구현할 수 있을 뿐만 아니라 피드백을 제공하고 애플리케이션 안정성을 유지하는 강력한 예외 처리 프레임워크를 제공합니다. 또한 개발자는 try-Exception 블록, 사용자 정의 예외 등과 같은 구성을 사용하여 오류를 적절하게 관리할 수 있습니다.
- Try-Except 블록
try-Exception 블록에서는 예외를 발생시킬 수 있는 코드가 try-블록에 배치되고, Except-블록은 예외가 발생할 경우 수행할 작업을 지정합니다(Python Software Foundation, n.d.).
예:
try: result = 1 / 0 except ZeroDivisionError: print("Cannot divide by zero.")
하나의 try-제외 블록에서 여러 예외를 포착하려면 여러 제외 블록이 포함된 try-블록을 사용하여 각 예외 유형에 대한 특정 응답을 생성할 수 있습니다. 또는 튜플을 사용하여 단일 예외 표현식으로 여러 예외를 포착할 수 있습니다.
예:
# One try block and several except blocks try: result = 1 / 'a' except ZeroDivisionError: print("Cannot divide by zero.") except TypeError: print("Type error occurred.") # One try block and one except tuple block try: # some operation result = 1 / 'a' except (ZeroDivisionError, TypeError) as e: print(f"Error occurred: {e}")
- Else 절
else 절은 try-Exception 블록 뒤에 배치되며 try 블록에서 예외가 발생하지 않으면 실행됩니다.
예:
try: result = 1 / 2 except ZeroDivisionError: print(“Cannot divide by zero.”) else: print(“Division successful.”)
- 마지막 절
finally 절은 항상 try 블록이나 모든 제외 블록 뒤에 배치됩니다. 여기에는 예외가 발생한 경우에도 일반적으로 파일이나 네트워크 연결과 같은 리소스를 정리하기 위해 무슨 일이 있어도 실행되는 코드가 포함되어 있습니다.
예:
try: result = 1 / ‘a’ except ZeroDivisionError: print(“Cannot divide by zero.”) except TypeError: print(“Type error occurred.”) else: print(“Division successful.”) finally: print(“Goodbye, world!”)
예외 발생: raise 절은 예외가 발생하도록 강제하여 예외를 발생시키며, 일반적으로 특정 조건이 충족되지 않았음을 나타냅니다.
예:
if ‘a’ > 5: raise ValueError(“A must not exceed 5”)
- 예외 체이닝
절 올리기를 사용하여 예외를 연결할 수 있습니다. 이는 원래 오류에 컨텍스트를 추가하는 데 유용합니다.
예를 들어
try: open(‘myfile.txt’) except FileNotFoundError as e: raise RuntimeError(“Failed to open file”) from e
- 사용자 정의 예외
Exception 클래스 또는 기타 내장 예외 클래스(Mitchell, 2022)에서 상속하여 고유한 예외 클래스를 정의할 수 있습니다.
예:
class My_custom_ (Exception): pass try: raise MyCustomError(“An error occurred”) except MyCustomError as e: print(e)
- 예외 강화
add_note() 메소드를 사용하여 사용자 정의 메시지나 메모를 예외 개체(일명 e)에 '추가'함으로써 예외에 정보나 컨텍스트를 추가할 수 있습니다.
예:
def divide_numbers(a, b): try: result = a / b except ZeroDivisionError as e: e.add_note(“Cannot divide by zero”) e.add_note(“Please provide a non-zero divisor”) raise try: num1 = 10 num2 = 0 divide_numbers(num1, num2) except ZeroDivisionError as e: print(“An error occurred:”) print(str(e))
예외 처리는 여러 가지 이유로 중요합니다.
간단한 프로그램 오류 처리 예:
try: result = 1 / 0 except ZeroDivisionError: print("Cannot divide by zero.")
# One try block and several except blocks try: result = 1 / 'a' except ZeroDivisionError: print("Cannot divide by zero.") except TypeError: print("Type error occurred.") # One try block and one except tuple block try: # some operation result = 1 / 'a' except (ZeroDivisionError, TypeError) as e: print(f"Error occurred: {e}")
요약하자면, Python은 프로그램이 갑자기 실패하지 않고 예상치 못한 상황을 처리할 수 있도록 하는 포괄적인 예외 처리 프레임워크를 제공합니다. Try-Exception 블록, 사용자 정의 예외, 예외 체이닝 및 보강과 같은 고급 기능과 같은 구성을 활용하여 개발자는 프로그램이 탄력적이고 사용자 친화적이며 예상치 못한 시나리오를 적절하게 처리할 수 있는지 확인할 수 있습니다.
참고자료:
미첼 R(2022년 6월 13일). 사용자 정의 예외. _Python 필수 교육 _[동영상]. LinkedIn 학습. https://www.linkedin.com/learning/python-essential-training-14898805/custom-Exceptions?autoSkip=true&resume=false&u=2245842
Python 소프트웨어 재단. (n.d.). 8. 오류 및 예외. 파이썬. python.org.
원본은 2024년 8월 21일 Python의 Exception Handling - Medium에 게시되었습니다.
위 내용은 Python의 예외 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!