예외를 처리하는 방법
무슨 일이 있어도, 결국 이전의 시도와 excep 블록은 return 문에 사용되는 경우에도 문이 실행됩니다 차단합니다.
수입 SYS는 시도 : F = 개방 ( ' file.txt를 ' , ' R ' ) # ... # 일부 데이터 처리 제외 : ERR 같은 OSError 인쇄 ( " OS 오류 {} " .format (ERR)) 제외 : 프린트 ( ' 예상치 못한 오류 : ' , sys.exc_info () [0]) 마지막 : f.close ()
file.txt를 파일이 존재하지 않는 경우, 마지막 문장은 다음과 같은 예외가 발생합니다
역 추적 (가장 최근의 호출 마지막) : 파일 " . \ errorhandle.py " , 라인 24 에서 <모듈> f.close () 나가서 설명하자면 NameError : 이름이 ' F가 ' 있다 없다 정의
문서 활용 능력 오픈과 함께 사용하는 것이 가장 좋습니다
수입 SYS, OS INFILE = ' file.txt를 ' 만약 하지 os.path.exists (INFILE) 인쇄 (F ' 파일 INFILE {}가 존재하지 ' ) sys.exit () 를 연 (INFILE, ' R ' ), 핀 등의 : fin.read ()
사용자 정의 예외
클래스 MyInputError (예외) : "" " 예외 때 발생 INPUT에서 거기 오류 " "" DEF __init__ (자체, 값) : # 초기화의 사용자 정의 예외 유형 self.value = 값 DEF의 __str__ (자동) : #의 정의 문자열 유형의 비정상적인 표현 반환 ( " {} 입력이 잘못되었습니다 " .format합니다 (에 repr (self.value))) 은 try : 인상의 MyInputError (1.) #은 예외 MyInputError 발생 제외 MyInputError ERR AS : 인쇄 ( ' 오류 : { } ' .format (ERR))
코드 결과의 블록 :
오류 : 1 이다 잘못된 입력
참고 :
긱 시간 "파이썬 핵심 기술과 실용적인"