>  기사  >  백엔드 개발  >  Python 예외 처리 구조의 형태는 무엇입니까?

Python 예외 처리 구조의 형태는 무엇입니까?

silencement
silencement원래의
2019-06-12 10:50:577365검색

Python 예외 처리 구조의 형태는 무엇입니까?

Python은 주로 5가지 예외 메커니즘을 각각의 예와 함께 지원합니다.

기본 예외 처리기

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 문에 예외가 없으면 세 가지 인쇄가 모두 실행됩니다.

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으로 문의하세요.