>백엔드 개발 >파이썬 튜토리얼 >Python의 예외에 대한 자세한 설명

Python의 예외에 대한 자세한 설명

王林
王林원래의
2023-06-10 17:43:452447검색

Python은 읽기 쉽고 이해하기 쉬우며 풍부한 패키지 라이브러리로 인해 다양한 분야에서 널리 사용되는 뛰어난 프로그래밍 언어입니다. 그러나 Python 코드를 작성하는 과정에서 변수 이름 오류, 구문 오류 등과 같은 일부 오류가 필연적으로 발생합니다. 이때 Python은 예외 처리를 사용하여 프로그램이 예기치 않게 중지되는 것을 방지하고 프로그램 디버깅 프로세스를 단순화할 수 있습니다. 프로그래밍 효율성을 향상시킵니다. 이 기사에서는 예외 유형, 예외 처리 방법, 예외 스택 추적 등을 포함하여 Python의 예외를 자세히 소개합니다.

1. 예외 유형

  1. SyntaxError: 구문 오류

Python 인터프리터가 프로그램에서 구문 오류를 발견하면 SyntaxError 예외가 발생합니다. 예:

print 'hello world'

Python 3. SyntaxError 예외에서.

NameError: 잘못된 변수 이름

    Python이 정의되지 않은 변수를 발견하면 NameError 예외가 발생합니다. 예:
  1. a = 1
    print(b)
  2. 변수 b가 정의되지 않았기 때문에 NameError 예외가 발생합니다.

TypeError: 유형 오류

    지원되지 않는 작업 유형을 사용하려고 하면 TypeError 예외가 발생합니다. 예:
  1. a = 'hello'
    b = 5
    print(a + b)
  2. 문자열과 정수를 직접 추가할 수 없으므로 TypeError 예외가 발생합니다.

ZeroDivisionError: 0으로 나누기 오류

    0으로 나누려고 하면 ZeroDivisionError 예외가 발생합니다. 예:
  1. a = 5 / 0
  2. 0으로 나누는 것은 잘못된 연산이므로 ZeroDivisionError 예외가 발생합니다.

IndexError: 인덱스 오류

    목록이나 튜플에 존재하지 않는 요소에 액세스하려고 하면 IndexError 예외가 발생합니다. 예:
  1. a = [1, 2, 3]
    print(a[3])
  2. a에는 세 개의 요소만 있으므로 인덱스 3에 액세스하면 IndexError 예외가 발생합니다.

KeyError: 사전 키 오류

    사전에 존재하지 않는 키에 액세스하려고 하면 KeyError 예외가 발생합니다. 예:
  1. a = {'name': 'Tom', 'age': 20}
    print(a['gender'])
  2. 'gender' 키가 a에 존재하지 않으므로 KeyError 예외가 발생합니다.

ValueError: 값 오류

    함수 매개변수 유형은 정확하지만 매개변수 값이 잘못된 경우 ValueError 예외가 발생합니다. 예:
  1. a = int('abc')
  2. 'abc'는 정수 유형으로 변환할 수 없으므로 ValueError 예외가 발생합니다.

2. 예외 처리 방법

파이썬에서는 try-Exception 문을 사용하여 예외를 처리할 수 있습니다. try 블록에는 잘못될 수 있는 코드 블록이 포함되어 있고, Except 블록에는 예외 발생 시 처리 코드가 포함되어 있습니다.

여러 예외 유형을 처리할 때 여러 개의 Except 문을 사용할 수 있습니다. 예:

try:
    a = 1 / 0
except ZeroDivisionError:
    print('除数为零')
except TypeError:
    print('类型错误')

try 블록의 코드를 실행할 때 ZeroDivisionError 예외가 발생하면 프로그램은 첫 번째 제외 블록의 코드를 실행하여 "0으로 나누기"를 인쇄합니다. TypeError 예외가 발생하면 프로그램은 다음을 실행합니다. 두 번째 제외 블록의 코드는 "TypeError"를 인쇄합니다.

모든 유형의 예외를 포착하려면 다음과 같은 기본 예외문 형식을 사용할 수 있습니다.

try:
    # 可能会出错的代码
except:
    # 异常处理代码

이때, Except 블록의 코드는 모든 유형의 예외를 포착합니다.

Try-Exception 문 외에도 Python은 예외 발생 여부에 관계없이 실행될 코드에 대한 finally 절도 제공합니다. 예:

try:
    # 可能会出错的代码
except:
    # 异常处理代码
finally:
    # 无论如何都会执行的代码

3. 예외 스택 추적

Python 프로그램을 작성할 때 예외가 발생하면 프로그램은 예외 유형 및 예외 정보를 표시할 뿐만 아니라 예외 스택 추적 정보, 즉 예외가 발생했을 때의 코드 호출 스택입니다.

예외 스택 추적 정보는 매우 유용하며 예외를 생성한 코드의 위치를 ​​찾는 데 도움이 되어 문제를 더 쉽게 디버그하고 해결할 수 있습니다.

다음은 예외 스택 추적 정보의 예입니다.

Traceback (most recent call last):
  File "exceptions.py", line 11, in <module>
    c = a / b
ZeroDivisionError: division by zero

그 중 Traceback은 전체 예외 스택 추적 정보를 표시하며, 마지막 줄에는 예외 유형 및 예외 정보가 표시됩니다.

4225fa317875f3e92281a7b1a5733569의 파일 "Exceptions.py" 11번째 줄에는 예외가 발생한 파일 이름과 코드 줄 번호가 표시됩니다.

장기 실행 프로그램이나 프로덕션 환경의 프로그램의 경우 예외 스택 추적 정보를 로그 파일에 기록하여 이벤트 후 분석을 용이하게 할 수 있습니다.

4. 요약

이 문서에서는 예외 유형, 예외 처리 방법, 예외 스택 추적 등을 포함하여 Python의 예외를 자세히 소개합니다. Python 프로그램을 작성할 때 예외 처리는 필수적이고 중요한 기술입니다. 프로그램에서 예외를 처리해야만 프로그램의 안정성과 정확성이 보장될 수 있습니다.

위 내용은 Python의 예외에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.