Python 예외 처리 - BUG의 경로를 선택하고 BUG가 갈 곳이 없도록 합니다.

작성자: 주장--

개인 홈페이지: 주장--개인 홈페이지

이 기사의 칼럼: Python 칼럼

칼럼 소개: 이 칼럼은 무료 칼럼으로 Python의 기본 지식을 지속적으로 업데이트할 예정이니 많은 구독과 관심 부탁드립니다.

목차

1. Python 예외 이해

1. BUG라는 단어의 유래

2. 예외란 무엇입니까?

2. 일반적인 Python 예외 유형

3. 예외를 포착하고 처리하는 방법

1. 기존 캡처 구문

2. 지정된 예외 캡처

3. 여러 개의 지정된 예외 잡기


머리말

이 기사에서는 Python 예외 이해, 일반적인 예외 유형, 예외 포착 및 처리 방법 등 Python 예외의 기본 사항을 소개합니다.


1. Python 예외 이해

Python 예외 처리는 코드를 작성할 때 많은 문제를 방지할 수 있는 매우 중요한 프로그래밍 기술 입니다. 프로그램 실행 중 오류가 발생한 경우(예: 0으로 나누기, 존재하지 않는 변수에 접근 등) Python은 예외를 발생시키고 현재 코드의 실행을 중지합니다 . 적절한 처리가 없으면 프로그램이 종료되고 "Traceback" 메시지가 표시됩니다.

1. BUG라는 단어의 유래

BUG라는 단어의 유래를 이해하려면 세계 최초의 범용 컴퓨터(Mark II)를 사용할 때 발생한 오류로 거슬러 올라가야 합니다. 1945년 9월 9일 Mark II 컴퓨터가 제대로 작동하지 못했습니다. .. 여러 가지 방법을 시도했지만 문제 해결에 실패하여 결국 70번 릴레이에서 문제를 발견하였습니다. 기술자는 오랫동안 관찰한 결과 나방이 고장을 일으키는 것을 발견하고, 나방을 잡은 뒤 투명 테이프로 '사건기록부'에 붙여넣고 '첫 번째 벌레 발견 사례'라고 기록했다. , BUG라는 단어가 있습니다.

2. 예외란 무엇입니까?

프로그램 실행 중에 오류가 발생하면 Python은 오류 이후 코드를 실행할 수 없게 되어 오류가 발생하게 됩니다. 이것이 "예외"이며, 우리가 흔히 BUG라고 부르는 것입니다. 예외는 다음과 같은 이유로 발생할 수 있습니다 . 코드 오류 또는 외부 요인으로 인해 발생합니다. 그렇다면 프로그램이 이상해지기 전에 문제를 해결할 수 있는 방법은 없을까요? 물론, try + Except 문 블록을 사용하여 예외를 포착하고 처리할 수 있습니다.


2. 일반적인 Python 예외 유형

예외 포착 및 처리를 이해하기 전에 먼저 다음과 같은 일반적인 예외 유형을 살펴보겠습니다.

1. ZeroDivisionError : 피제수로 0을 사용하면 ZeroDivisionError 오류가 발생합니다.

0bccdc7f45c645d9893a86394e12eeae.png

예를 들어:

print(1 / 0)

설명: 위에서는 ZeroDivisionError: 이 상황은 0이 배당금으로 사용될 때 발생한다고 말했습니다. 수학에서는 0을 피제수로 사용할 수 없으므로 Python은 ZeroDivisionError 예외를 표시합니다.

2. ValueError : 범위를 벗어난 값에 연산이나 함수를 적용하면 ValueError가 발생한다.

d64d2252c68c469681841601ee5fec31.png

예를 들어:

result = int("insist")

설명: 예를 들어, 위 코드에서는 "insist" 문자열을 정수로 변환하려고 시도하지만 제공한 문자열을 정수로 변환할 수 없습니다. 그래서 ValueError 오류가 발생했습니다.

3. KeyError : 사전에 존재하지 않는 키를 사용할 경우 KeyError가 발생합니다.

bea04763efa54f10bf510015199e0188.png

예를 들어:

my_dict = {1:2}
value = my_dict["insist"]

설명: 위 코드에서 이 예외는 사전에서 ""insist"(존재하지 않음) 키를 가져오려고 할 때 발생합니다. 사전에 "insist"를 정의하지 않았기 때문에 KeyError가 발생합니다. 

4. IndexError : 목록에 존재하지 않는 인덱스나 인덱싱을 지원하는 다른 객체에 접근할 경우 IndexError 에러가 발생한다.

2cef6201d6c64589b7c12fe3b6637155.png 예를 들어:

my_list = [1,2,3]
value = my_list[4]

설명: 위 코드에서는 요소가 세 개만 있는 목록의 네 번째 요소에 액세스하려고 합니다. 이 오류가 발생합니다.


3. 예외를 포착하고 처리하는 방법

Python 프로그래밍 언어에서는 try + Except 문 블록을 사용하여 예외를 포착하고 처리 할 수 있습니다 . try 블록에는 예외가 발생할 수 있는 코드를 작성 하고, Except 블록 에는 .

1. 기존 캡처 구문

간단한 예는 다음과 같습니다.

try:
    result = 1 / 0                  # 可能引发异常的代码
except :
    print("发生错误啦")               # 当除以零异常发生时要执行的代码

출력 결과:

c16a7e91ba1745679fc4b8f9ea5aa19f.png

위의 예에서 0으로 나누기 예외가 발생하면 프로그램은 제외 블록의 코드를 실행하고 "오류가 발생했습니다."를 인쇄합니다. 예외가 발생하지 않으면 코드 블록이 실행되지 않습니다.

2. 지정된 예외 캡처

간단한 예는 다음과 같습니다.

try:
    result = 1 / 0                  # 可能引发异常的代码
except ZeroDivisionError:
    print("捕捉到了 ZeroDivisionError 错误")               # 当除以零异常发生时要执行的代码

출력 결과:

이 예에서는 ZeroDivisionError 예외를 지정합니다. 이 예외가 발생하면 "an error 발생"이 정상적으로 출력되고, 지정한 오류가 발생하지 않으면 프로그램은 오류를 보고하고 프로그램을 중지합니다.

3. 여러 개의 지정된 예외 잡기

간단한 예는 다음과 같습니다.

try:
    x = 1 / 0         # 尝试一些可能会引发异常的代码
except (ZeroDivisionError, TypeError):
    print("捕捉到了 ZeroDivisionError 或 TypeError ")   #异常时要做的事

출력 결과:

Je suppose que tu aimes

Origine blog.csdn.net/m0_73995538/article/details/132793093
conseillé
Classement