>  기사  >  백엔드 개발  >  Python의 다섯 가지 예외 처리 메커니즘에 대한 자세한 설명

Python의 다섯 가지 예외 처리 메커니즘에 대한 자세한 설명

高洛峰
高洛峰원래의
2017-03-17 15:55:521721검색

저는 몇 년 전부터 프로그래밍을 배우기 시작했는데 지금까지 프로그램의 예외 처리가 늘 두렵고 싫었습니다. 그 이유는 이해가 부족하기 때문입니다. 이번에는 python을 공격할 때 "예외 처리"를 포함하여 가장 두렵고 가장 익숙하지 않은 부분을 먼저 나열합니다.

"pe into Python"은 예외 처리를 구체적으로 소개하지 않고 예제에서 사용할 때 간략하게만 설명합니다. 지금 "Python 배우기"를 다운로드하고 예외 처리로 바로 이동하세요. 이 부분은 4개의 장으로 구성되어 있습니다. 첫 번째 장에서는 예외 처리의 일반적인 사용을 설명하고 다음 장에서는 해당 메커니즘에 대해 자세히 설명합니다. 지금까지는 첫 번째 장만 읽었습니다. 먼저 사용법을 배우고 필요할 때 더 읽어보고 싶습니다.

Python은 주로 하나씩 나열된 다섯 가지 예외 메커니즘을 지원합니다.

기본 예외 처리기

코드는 다음과 같습니다.

s = 'Hello girl!'
print s[100]
print 'continue'

예외에 대한 예방 조치를 취하지 않으면 프로그램 실행 중에 예외가 발생하면 프로그램은 Python의 기본 예외 처리기를 호출하고 터미널에 예외 정보를 출력합니다. 이 경우 코드의 3번째 줄은 실행되지 않습니다.

try…Exception

코드는 다음과 같습니다.

s = 'Hello girl!'
try:
 print s[100]
except IndexError:
 print 'error...'
print 'continue'

프로그램이 두 번째 문장까지 실행되면 try 문을 찾아 try 문 블록에 들어가 실행합니다. , 예외가 발생하고 try 문 계층으로 돌아가서 뒤에 Except 문이 있는지 확인합니다. Except 문이 발견되면 이 사용자 지정 예외 처리기가 호출됩니다. 제외가 예외를 처리한 후 프로그램은 계속 실행됩니다. 이 경우 마지막 두 개의 print 문이 실행됩니다.

Exception은 비어 있을 수도 있으며, 이는 모든 유형의 예외가 포착되었음을 나타냅니다.

try…finally

코드는 다음과 같습니다.

s = 'Hello girl!'
try:
 print s[100]
finally:
 print 'error...'
print 'continue'

finally 문은 예외 발생 여부에 관계없이 finally의 문을 실행해야 한다는 의미입니다. 그러나 예외 핸들러가 없기 때문에 최종 실행 후 프로그램이 중단됩니다. 이 경우 두 번째 인쇄는 실행되지만 첫 번째 인쇄는 실행되지 않습니다. try 문에 예외가 없으면 세 가지 인쇄가 모두 실행됩니다.

assert

코드는 다음과 같습니다.

assert False,'error...'
print 'continue'

이 문은 먼저 Assert 바로 다음에 오는 문이 True인지 False인지 확인합니다. True이면 계속해서 print를 실행합니다. False인 경우 프로그램이 중단되고 기본 예외 처리기가 호출되며 Assert 문에서 쉼표 뒤의 프롬프트 정보가 출력됩니다. 이 경우 프로그램이 중단되고 오류 메시지가 표시되며 후속 인쇄가 실행되지 않습니다.

with…as

코드는 다음과 같습니다:

with open('nothing.txt','r') as f:
 f.read()
 print 2/0
print 'continue'

일반적으로 파일류 스트림 객체 를 사용할 때 close를 호출해야 합니다. 사용 후 방법이 매우 번거롭습니다. 여기서 with...as 문은 매우 편리한 대안을 제공합니다. open이 파일을 연 후 반환된 파일 스트림 객체를 f에 할당한 다음 with 문 블록에서 사용합니다. with 문 블록이 완료된 후 파일은 자동으로 숨겨집니다.

with 문이나 문 블록에서 예외가 발생하면 기본 예외 처리기가 호출되지만 파일은 여전히 ​​정상적으로 닫힙니다.

이 경우 예외가 발생하고 최종 인쇄가 실행되지 않습니다.


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

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