Python 예외 처리 방법에 대한 자세한 그래픽 설명
Python은 Python 프로그램이 실행될 때 발생하는 예외와 오류를 처리하기 위해 두 가지 매우 중요한 기능을 제공합니다. 이 기능을 사용하여 Python 프로그램을 디버그할 수 있습니다.
문서를 보려면 F1을 열 수 있습니다. 그림에 표시된 것처럼 많은 예외 유형이 있습니다.
무엇입니까? 예외?
예외란 프로그램 실행 중에 발생하여 프로그램의 정상적인 실행에 영향을 미치는 이벤트입니다.
일반적으로 Python이 프로그램을 정상적으로 처리할 수 없을 때 예외가 발생합니다.
예외는 오류를 나타내는 Python 객체입니다.
Python 스크립트에서 예외가 발생하면 이를 포착하고 처리해야 합니다. 그렇지 않으면 프로그램이 실행을 종료합니다.
예외 처리
예외를 포착하려면 try/exc 문을 사용할 수 있습니다.
try/Exception 문은 try 문 블록에서 오류를 감지하는 데 사용되므로, Except 문이 예외 정보를 캡처하고 처리할 수 있습니다.
예외 발생 시 프로그램을 종료하고 싶지 않다면 한번 시도해 보세요.
구문:
다음은 간단한 try...Exception...else의 구문입니다.
try
:
#运行别的代码
except
:
#如果在try部份引发了'name'异常
except
,:
#如果引发了'name'异常,获得附加的数据
else
:
#如果没有异常发生
try의 작동 원리는 try를 시작한 후 문에서 Python은 예외가 발생할 때 여기로 돌아올 수 있도록 현재 프로그램의 컨텍스트를 표시합니다. try 절이 먼저 실행되고 다음에 일어나는 일은 실행 중에 예외가 발생하는지 여부에 따라 달라집니다.
try 이후 문이 실행될 때 예외가 발생하면 Python은 예외가 처리된 후 전체 try 문을 통과하여 try 및 첫 번째 Except 절을 실행합니다. (예외를 처리할 때 새로운 예외가 발생하지 않는 한)
#try 후 문에서 예외가 발생했지만 일치하는 Except 절이 없으면 해당 예외는 상위 try 또는 프로그램의 최상위 수준에 제출됩니다(이로 인해 프로그램이 종료되고 오류 지방 오류 메시지를 인쇄합니다.
#try 절이 실행될 때 예외가 발생하지 않으면 파이썬은 else 문 다음에 문을 실행하고(else가 있는 경우) 제어 흐름은 전체 try 문을 통과합니다.
예
다음은 간단한 예입니다. 파일을 열고, 파일에 내용을 쓰고, 예외가 발생하지 않습니다.
#!/usr/bin/python
try
:
fh
=
open
(
"testfile"
,
"w"
)
fh.write(
"This is my test file for exception handling!!"
)
except
IOError:
print
"Error: can't find file or read data"
else
:
print
"Written content in the file successfully"
fh.close()
위 프로그램 출력 결과 :
Written content
in
the
file
successfully
예
다음은 간단한 예입니다. 파일을 엽니다. 콘텐츠가 기록되었지만 파일에 쓰기 권한이 없어 예외가 발생했습니다:
#!/usr/bin/python
try
:
fh
=
open
(
"testfile"
,
"r"
)
fh.write(
"This is my test file for exception handling!!"
)
except
IOError:
print
"Error: can't find file or read data"
else
:
print
"Written content in the file successfully"
위 프로그램 출력 결과:
Error: can't find
file
or
read data
예외 유형 없이 제외 사용
다음 예와 같이 예외 유형 없이 Except를 사용할 수 있습니다.
try
:
You do your operations here;
......................
except
:
If there
is
any
exception, then execute this block.
......................
else
:
If there
is
no exception then execute this block.
위 방식의 try-Exception 문은 발생하는 모든 예외를 캡처합니다. 하지만 이는 좋은 방법이 아니며, 이 프로그램을 통해서는 구체적인 비정상적인 정보를 식별할 수 없습니다. 모든 예외를 포착하기 때문입니다.
여러 예외 유형과 함께 Except 사용
아래 표시된 것처럼 동일한 Except 문을 사용하여 여러 예외 메시지를 처리할 수도 있습니다.
try
:
You do your operations here;
......................
except
(Exception1[, Exception2[,...ExceptionN]]]):
If there
is
any
exception
from
the given exception
list
,
then execute this block.
......................
else
:
If there
is
no exception then execute this block.
try-finally 문
try- finally 문은 예외 발생 여부에 관계없이 마지막 코드를 실행합니다.
try
:
finally
:
#退出try时总会执行
raise
참고: Except 문이나 finally 문을 사용하되 동시에 둘 다 사용하지 마십시오. else 문은 finally 문
#!/usr/bin/python
try
:
과 함께 사용할 수 없습니다.
fh
=
open
(
"testfile"
,
"w"
)
fh.write(
"This is my test file for exception handling!!"
)
finally
:
print
"Error: can't find file or read data"
열린 파일에 쓰기 권한이 없으면 출력은 다음과 같습니다.
Error: can't find
file
or
read data
#!/usr/bin/python
🎜>try
:
fh
=
open
(
"testfile"
,
"w"
)
try
:
fh.write(
"This is my test file for exception handling!!"
)
print
"Error: can't find file or read data"
try 블록에서 예외가 발생하면 finally 블록 코드가 즉시 실행됩니다.
finally 블록의 모든 문이 실행된 후 다시 예외가 발생하고 Except 블록 코드가 실행됩니다.
매개변수의 내용이 예외사항과 다릅니다.
예외 매개변수
예외에는 출력 예외 정보 매개변수로 사용할 수 있는 매개변수가 있을 수 있습니다.
다음과 같이 Except 문을 통해 예외 매개변수를 캡처할 수 있습니다.
try
:
You do your operations here;
......................
except
ExceptionType, Argument:
You can
print
value of Argument here...
변수에서 받는 예외 값은 일반적으로 예외 문에 포함됩니다. 튜플 형태의 변수는 하나 이상의 값을 받을 수 있습니다.
튜플에는 일반적으로 잘못된 문자열, 잘못된 숫자, 잘못된 위치가 포함됩니다.
인스턴스
다음은 단일 예외의 예입니다.
#!/usr/bin/python
# Define a function here.
def
temp_convert(var):
try
:
return
int
(var)
except
ValueError, Argument:
print
"The argument does not contain numbersn"
, Argument
# Call above function here.
temp_convert(
"xyz"
);
실행 결과 위의 프로그램은 다음과 같습니다.
The argument does
not
contain numbers
invalid literal
for
int
() with base
10
:
'xyz'
예외 발생
raise 문을 사용하여 예외를 직접 발생시킬 수 있습니다
raise 구문 형식은 다음과 같습니다.
raise
[Exception [, args [, traceback]]]
문의 예외는 예외 유형(예: NameError)이고 매개 변수는 예외 매개 변수 값입니다. 이 매개변수는 선택사항입니다. 제공되지 않은 경우 예외 매개변수는 "None"입니다.
마지막 인수는 선택 사항이며(실제로는 거의 사용되지 않음) 존재하는 경우 추적 예외 개체입니다.
인스턴스
예외는 문자열, 클래스 또는 개체일 수 있습니다. Python 커널에서 제공되는 대부분의 예외는 클래스 인스턴스의 매개변수인 인스턴스화된 클래스입니다.
예외 정의는 다음과 같이 매우 간단합니다.
def
functionName( level ):
if
level <code>1
:
raise
"Invalid level!"
, level
# The code below to this would not be executed
# if we raise the exception
참고: 예외를 포착하려면 "제외" 문에서 동일한 예외를 사용하여 클래스 개체 또는 문자열을 발생시켜야 합니다.
예를 들어 위의 예외를 catch하는 경우 "제외" 문은 다음과 같습니다.
try
:
Business Logic here...
except
"Invalid level!"
:
Exception handling here...
else
:
Rest of the code here...
사용자 정의 예외
새 예외 클래스를 생성하면 프로그램에서 고유한 예외 이름을 지정할 수 있습니다. 예외는 일반적으로 Exception 클래스에서 직접 또는 간접적으로 상속되어야 합니다.
다음은 RuntimeError와 관련된 예제입니다. 예제에는 예외가 발생했을 때 자세한 정보를 출력하는 데 사용되는 기본 클래스인 RuntimeError가 생성됩니다.
try 문 블록에서는 사용자 정의 예외 이후에 Except 블록 문이 실행됩니다. 변수 e는 Networkerror 클래스의 인스턴스를 만드는 데 사용됩니다.
class
Networkerror(RuntimeError):
def
__init__(
self
, arg):
self
.args
=
arg
위 클래스를 정의한 후 다음과 같이 예외를 트리거할 수 있습니다.
try
:
raise
Networkerror(
"Bad hostname"
)
except
Networkerror,e:
print
e.args
위 내용은 Python 예외 처리 방법에 대한 자세한 그래픽 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

Python의 Pandas 라이브러리를 사용할 때는 구조가 다른 두 데이터 프레임 사이에서 전체 열을 복사하는 방법이 일반적인 문제입니다. 두 개의 dats가 있다고 가정 해

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Uvicorn은 HTTP 요청을 어떻게 지속적으로 듣습니까? Uvicorn은 ASGI를 기반으로 한 가벼운 웹 서버입니다. 핵심 기능 중 하나는 HTTP 요청을 듣고 진행하는 것입니다 ...

파이썬에서 문자열을 통해 객체를 동적으로 생성하고 메소드를 호출하는 방법은 무엇입니까? 특히 구성 또는 실행 해야하는 경우 일반적인 프로그래밍 요구 사항입니다.

이 기사는 Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask 및 요청과 같은 인기있는 Python 라이브러리에 대해 설명하고 과학 컴퓨팅, 데이터 분석, 시각화, 기계 학습, 웹 개발 및 H에서의 사용에 대해 자세히 설명합니다.

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...
