오류 및 예외 개념
오류:
1. 구문 오류: 코드가 인터프리터 또는 컴파일러 구문을 따르지 않습니다
2. 논리 오류: 불완전하거나 잘못된 입력 또는 계산 문제
Exception: 실행 중에 문제가 발생하여 프로그램이 실행되지 않습니다
1. 프로그램에 논리 또는 알고리즘 문제가 발생했습니다
2. 작업 중 컴퓨터 오류(메모리 부족 또는 IO 오류) )
오류와 예외의 차이
Error:
코드 실행 전 구문 또는 논리 오류 , #🎜🎜 #
구문 오류는 실행 전에 수정되고, 논리적 오류는 수정할 수 없습니다. 예외는 두 단계로 구분됩니다. 1. 예외가 생성됩니다. 오류가 감지되고 통역사는 예외라고 생각하고 예외를 발생시킵니다. 2. 예외 처리, 예외 가로채기, 예외 처리를 위해 프로그램 무시 또는 종료Python 일반적인 오류Common Error: under ipython 1. a : NameError 직접 참조 정의되지 않음 2. if True : SyntaxError#🎜 🎜#Syntax error
3. f = open('1.txt') : IOError
시도할 때 존재하지 않는 파일 열기#🎜🎜 #
4. 10/0 : ZeroDivisionError 5. a = int('dd') : ValueError 강제 유형 변환을 수행할 때 오류 발생 try--예외 처리 제외 (1) try-제외: 예외 처리try: try_suite except Exception [, e]: exception_block1.try try_suite에서 오류를 캡처하고 오류를 Except 2에 전달하는 데 사용됩니다. 예외 처리는 캡처된 예외 설정과 일치하는 경우 예외를 처리하는 데 사용됩니다. 예: #🎜🎜 #
try: a except Exception, e: print e
try-제외 캡처 예외 분석:
사례 1:
try: undef except: print 'catch an except'
사례 2: # 🎜🎜#
try: if undef except: print 'catch an except'case 1: 캡처 가능 예외, 런타임 오류이기 때문에case 2: 예외는 구문 오류, 사전 실행 오류이기 때문에 catch할 수 없습니다. 사례 3:
try: undef except NameError, e: print 'catch an except', e Case 4: try: undef except IOError, e: print 'catch an except', e사례 3: 설정이 NameError 예외를 캡처하므로 예외를 포착할 수 있습니다.사례 4: 예외를 포착할 수 없습니다. IOError가 설정되어 있고 NameError가 설정되어 있고 NameError가 발생했기 때문에 발생했습니다. try--예외 처리 제외(2) try-제외: 여러 예외 처리
try: try_suite except Exception1 [e]: exception_block1 except Exception2 [e]: exception_block2 except ExceptionN [e]: exception_blockNtry-ready--else 사용
try: try_suite except Exception1 [e]: exception_block1 else: none_exception#🎜🎜 #예외가 없으면 else 문에 있는 코드를 실행합니다.
try--finally 문
try-finally 문:
try: try_suite finally: do_finally
1. If try 문은 오류를 캡처하지 않으며 코드는 do_finally 문을 실행합니다
2 . try 문이 오류를 캡처하면 프로그램은 먼저 do_finally 문을 실행한 다음 처리를 위해 캡처된 오류를 Python 해석기에 전달합니다.
#🎜🎜 #try-finally 문: 규칙: try-finally는 예외 감지 여부에 관계없이 finally 코드를 실행합니다. 기능: 파일을 닫거나 시스템 리소스를 해제하기 위한 예외 처리 이벤트에 대한 정리 메커니즘을 제공합니다 try-Exception-finally 사용:try: try_suite except: do_except finally: do_finally1. try 문이 예외를 포착하지 못하면 try 코드 세그먼트를 실행한 후 finally#🎜🎜 #
2를 실행합니다. 예외가 발생하면 먼저 오류를 처리하기 위해 Except를 실행한 다음 finally
try-read-else-finally를 실행합니다.
try: try_suite except: do_except else: do_else finally: do_finally
1인 경우 try 문이 catch되지 않습니다. try 코드 블록을 실행한 후 else 코드 블록을 실행하고 최종적으로 finally
2를 실행합니다. try가 예외를 catch하면 먼저 예외를 실행하여 오류를 처리한 다음 finally#🎜를 실행합니다. 🎜## 🎜🎜#with문
with문:
with context [as var]:
with_suite
#🎜🎜 #1. with 문은 try-Exception-finally 문을 대체하여 코드를 더욱 간결하게 만듭니다. 2 컨텍스트 표현식은 객체를 반환합니다. .var는 컨텍스트 반환 개체, 단일 반환 값 또는 조상을 저장하는 데 사용됩니다.4.with_suite는 var 변수를 사용하여 컨텍스트 반환 개체에서 작동합니다… ##🎜 🎜#raise 및 주장
raise 문 raise 문은 예외를 적극적으로 발생시키는 데 사용됩니다.#🎜🎜 # 문법 형식: raise [예외 [ , args]]
Exception: 예외 클래스
args: 예외 정보를 설명하는 튜플
예: #🎜 🎜#
raise TypeError raise TypeError, 'Test Error' raise IOError, 'File Not Exist'#🎜🎜 #assert 문
Assertion 문: Assertion 문은 식이 true인지 확인하는 데 사용됩니다. #🎜🎜 #문법 형식 : Assert 표현식 [, args]
expression : 표현식 args : 판단 조건에 대한 설명 정보 예: #🎜🎜 #assert 7==6 assert 0, 'Test Error'
Python 표준 및 자동 예외 정의
표준 예외: 프로그램이 실행되기 전에 이미 존재하는 Python 내장 예외
사용자 정의 예외: #🎜 🎜#
1.python은 사용자 정의를 허용합니다. 예외는 python2와 관련되지 않은 비정상적인 상황을 설명하는 데 사용됩니다. 사용자 정의 예외는 Exception 클래스3을 상속해야 합니다. 예외는 적극적으로만 트리거될 수 있습니다.사용자 정의 예외 예:
class FileError(IOError): pass raise FileError, 'Test FileError' class CustomError(Exception): def __init__(self, info): Exception.__init__(self) self.errorinfo = info def __str__(self): return 'CustomError: %s' % self.errorinfo try: raise CustomError('test CustomError') except CustomError, e: print 'Error Info : %s' % e관련 권장 사항: "
Python tutorial
"위 내용은 파이썬 예외와 오류의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!