>  기사  >  백엔드 개발  >  Python에서 예외를 포착하고 처리하는 방법은 무엇입니까?

Python에서 예외를 포착하고 처리하는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-05-10 20:19:051721검색

Python 예외는 프로그램 실행 중에 발생하는 오류이며 프로그램이 종료될 수 있습니다.

Python에서 예외 처리는 예외가 발생할 때 프로그램이 계속 실행되거나 정상적으로 종료될 수 있도록 개발자가 프로그램에서 예외가 발생할 때 예외를 포착, 처리 및 보고할 수 있도록 하는 메커니즘입니다.

Python에서 예외는 표준 예외(예: SyntaxError 및 TypeError) 또는 사용자 정의 예외일 수 있습니다. 표준 예외는 Python 내부적으로 정의되는 반면, 사용자 정의 예외는 일반적으로 특정 애플리케이션이나 라이브러리에 대해 개발자가 정의합니다.

다음은 몇 가지 일반적인 Python 예외입니다.

  • SyntaxError: 일반적으로 대괄호, 콜론 누락 등과 같은 구문 오류로 인해 발생하는 구문 오류입니다.

  • TypeError: 유형 오류는 일반적으로 문자열과 숫자를 추가하는 등 서로 다른 유형의 개체를 결합할 때 발생합니다.

  • ValueError: 값 오류는 일반적으로 문자열을 정수로 변환할 때 잘못된 문자열과 같이 제공된 값이 예상 범위나 형식을 따르지 않아 발생합니다.

  • IndexError: 일반적으로 목록이나 튜플에 존재하지 않는 요소에 액세스하려고 할 때 발생하는 인덱스 오류입니다.

  • KeyError: 키 오류는 일반적으로 사전에 존재하지 않는 키에 액세스하려고 할 때 발생합니다.

  • IOError: 입출력 오류. 일반적으로 파일을 읽거나 쓰는 동안 문제로 인해 발생합니다.

  • AttributeError: 일반적으로 개체에 존재하지 않는 속성이나 메서드에 액세스하려고 할 때 발생하는 속성 오류입니다.

Python에서는 try-Exception 문을 사용하여 예외를 포착하고 처리할 수 있습니다. try 문에는 예외를 일으킬 수 있는 코드가 포함되어 있고, Except 문에는 예외가 발생했을 때 실행될 코드가 정의되어 있습니다.

여러 개의 Except 문을 사용하여 다양한 유형의 예외를 캡처할 수 있습니다. Try-Exception은 else와 쌍을 이룰 수도 있습니다. 이는 try 문이 예외를 감지하지 못할 때 else 문의 내용이 실행된다는 의미입니다. 또한 finally 문을 사용하여 try 문 블록 다음에 항상 실행되는 코드를 정의할 수 있습니다.

예:

사례 1: try-Exception 문을 사용하여 예외를 포착하고 처리합니다.

예:

try:
100/0 # 예외를 일으킬 수 있는 코드

except ZeroDivisionError: #(捕获特定的异常类型ZeroDivisionError,ZeroDivisionError是Python中的内置异常类之一,用于表示在除数为零的情况下进行了除法操作所引发的异常。)

    print('因为这里打印出异常类型:除数不能为0。')# 处理值错误的代码

Python에서 예외를 포착하고 처리하는 방법은 무엇입니까?

사례 2: else 문과 함께 try-Exception 문 사용(try 문에서 예외를 감지하지 못한 경우 else 문의 내용이 실행됨)

try 문에서 예외가 감지되면 실행되지 않음 else 문의 내용

>>> try:
...     1 / 0
... except:
...     print("逮到了~")
... else:
...     print("没逮到~")
...

Caught~

try 문에서 예외가 감지되면, Except 문의 예외 처리 내용이 실행됩니다:

>>> try:
...     1 / 1
... except:
...     print("逮到了~")
... else:
...     print("没逮到~")
...
1.0

Not catch~

사례 3: try-Exception 사용 명령문 조합 finally 명령문(예외 발생 여부에 관계없이 실행되어야 하는 최종 명령문)

예:

try:
‘abc’+ 123

except TypeError: #TypeError为类型错误,通常是由于将不同类型的对象组合在一起而引起的,如将字符串和数字相加。
    print('因为这里打印出异常类型:类型错误。')# 处理类型错误的代码
finally:
    print('不论是否无法异常,都执行这句话') # 无论是否发生异常都会执行的代码

Python에서 예외를 포착하고 처리하는 방법은 무엇입니까?

예외 처리는 중요한 개념입니다. Python에서 먼저 개발자는 프로그램 안정성과 신뢰성을 보장하기 위해 예외를 적절하게 포착하고 처리하는 방법을 이해해야 합니다.

고급: 예외 포착 방법

예외 포착 방법 두 가지: 어떤 종류의 예외라도 예외 정보를 캡처합니다.

1. 예외 사용: 모든 예외는 Exception의 하위 클래스입니다. 따라서 Exception은 모든 유형의 예외와 일치할 수 있습니다.

예:

>>> try:
    100/0
except Exception  as e:
    print('未知异常:', e)
# 对于很多刚学Python或者是学着学着迷茫了的小伙伴,我给大家准备了一套Python的学习资料。
# 包括数百本电子书、Python基础视频教程、项目实战,疑难解答,直接在文末名片自取。
   
未知异常: division by zero
>>>

는 정상적으로 예외 원인을 캡처할 수 있지만 자세한 예외 정보(예외가 전송된 위치 및 예외 코드)를 출력할 수 없습니다.

2. 트레이스백 모듈 사용: 트레이스백 모듈의 format_exc 함수를 사용하여 예외 정보 및 예외가 발생한 함수 호출 스택 정보를 표시합니다.

예:

>>>  import traceback
>>>  try:
    100/0
except  :
    print(traceback.format_exc())
 
 
Traceback (most recent call  last):
  File "<pyshell#5>", line 2, in <module>
ZeroDivisionError: division by  zero
>>>

위 코드는 예외를 발생시킨 자세한 함수 호출 스택 정보를 인쇄합니다

위 내용은 Python에서 예외를 포착하고 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제