>  기사  >  백엔드 개발  >  Python 오류 및 예외 개념

Python 오류 및 예외 개념

高洛峰
高洛峰원래의
2017-02-28 10:32:451669검색

파이썬 오류 및 예외 개념(일반)

1. 오류 및 예외 처리 방법

  1. 일반적인 오류

  2. a: NameError

  3. 참인 경우: SyntaxError

  4. f = oepn('1.txt'): IOError

  5. 10/0: ZeropisionError

  6. a = int('d'): ValueError

  7. 프로그램 실행 중 중단: KeyboardInterrupt

2.Python에서는 try_Exception을 사용하여 예외를 처리합니다. (1)

try:
    try_suite
except Exception [e]:
    exception_block
  1. try는 try_suite에서 오류를 캡처하는 데 사용됩니다. 예외 처리를 위해 오류 처리

  2. 예외 처리가 캡처된 예외 설정과 일치하는 경우, 예외 처리를 위해 예외_블록을 사용하세요

# case 1
try:
    undef
except:
    print 'catch an except'
rrree
  • case1: 런타임 오류이므로 예외를 catch할 수 있습니다

  • case2: 구문 오류이고 사전 오류이므로 예외를 catch할 수 없습니다. -run error

--

# case 2
try:
    if undef
except:
    print 'catch an except'
# case 3
try:
    undef
except NameError,e:
    print 'catch an except',e
  • case3: 캡처 설정 NameError 예외로 인해 예외가 catch될 수 있음

  • case4: IOError를 설정하면 NameError를 처리하지 않으므로 예외를 포착할 수 없습니다

# case 4
try:
    undef
except IOError,e:
    print 'catch an except',e

3. Python은 예외를 처리하기 위해 try_Exception을 사용합니다(2 )

  • try -Exception: 여러 예외 처리

import random

num = random.randint(0, 100)

while True:
    try:
        guess = int(raw_input("Enter 1~100"))
    except ValueError, e:
        print "Enter 1~100"
        continue
    if guess > num:
        print "guess Bigger:", guess
    elif guess < num:
        print "guess Smaller:", guess
    elif guess == num:
        print "Guess OK,Game Over"
        break
    print &#39;\n&#39;

4. Python-try_finally는

try:
    try_suite
except Exception1[e]:
    exception_block1
except Exception2[e]:
    exception_block2
except ExceptionN[e]:
    exception_blockN
  • 를 사용합니다. 🎜>try 문이 오류를 포착하지 못하면 코드는 do_finally 문을 실행합니다.

  • try 문이 오류를 포착하면 프로그램은 먼저 do_finally 문을 실행한 다음 처리를 위해 Python 인터프리터에 오류를 캡처했습니다.

5. Python -try-read-else-finally

try:
    try_suite
finally:
    do_finally

  • try 문이 그렇지 않은 경우 예외를 catch하고 try 코드 세그먼트를 실행한 후 finally 실행

  • try가 예외를 catch하면 오류를 처리하기 위해 먼저 Except를 실행하고 마지막으로 실행

6. Python-with_as 문

 try:
    try_suite
 except:
    do_except
 finally:
    do_finally

  • with 문은 코드를 더 간결하게 만들기 위해 try_Exception_finall 문을 대체하는 데 사용됩니다.

  • 컨텍스트 표현식은 객체를 반환합니다.

  • var는 컨텍스트 반환 객체를 저장하는 데 사용되며, 단일 반환 값 또는 튜플은

  • with_suite에서 사용됩니다. 컨텍스트 반환 객체에서 작동하는 var 변수

with 문의 핵심은 컨텍스트 관리입니다:

  1. 컨텍스트 관리 프로토콜: 메서드 포함

    __enter__() 이 프로토콜을 지원하는 개체는 __exit()__

  2. 컨텍스트 관리자: with 문을 실행할 때 정의합니다. 설정할 런타임 컨텍스트는 항목 실행을 담당합니다. with 문 블록 컨텍스트

  3. 에서 작업 종료: 컨텍스트 관리자 입력: 관리자

    메서드를 호출합니다. as var 문이 설정된 경우 var 변수는 __enter__ 메서드를 허용합니다. 반환 값 __enter__()

  4. 컨텍스트 관리자 종료: 관리자 호출

    메소드 __exit__

  5. with context [as var]:
        with_suite
문 적용 시나리오:

  1. 파일 작업

  2. 뮤텍스 잠금과 같은 프로세스 스레드 간의 상호 개체

  3. 컨텍스트를 지원하는 기타 개체

2. 표준 예외 및 자동 예외

1. Python-assert 및 raise 문

  • rais 문

    • reise 문은 예외를 적극적으로 발생시키는 데 사용됩니다.

    • 구문 형식: raise[Exception[,args]]

    • 예외: 예외 클래스

    • args: 예외 정보를 설명하는 튜플

    class Mycontex(object):
        def __init__(self, name):
            self.name = name
    
        def __enter__(self):
            print "__enter__"
            return self
    
        def do_self(self):
            print "do_self"
    
        def __exit__(self, exc_type, exc_val, exc_tb):
            print "__exit__"
            print "Error:", exc_type, " info:", exc_val
    
    
    if __name__ == "__main__":
        with Mycontex(&#39;test context&#39;) as f:
            print f.name
            f.do_self()
    raise TypeError, &#39;Test Error&#39;
  • assert 문

    • Assertion 문: Assertion 문은 표현식이 true인지 확인하는 데 사용됩니다. 해당 표현식이 false인 경우 AssertionError가 발생합니다.

    • 문법 형식: Assert 표현식[,args]

    • experession: 표현식

    • args: 판단 조건 설명 정보

    raise IOError, &#39;File Not Exit&#39;
    assert 0, &#39;test assert&#39;
2. Python 표준 예외 및 사용자 정의 예외

  • 표준 예외

    • Python 내장 프로그램이 실행되기 전에 이미 예외가 존재합니다

    • Python 오류 및 예외 개념

  • 사용자 정의 예외:

    • Python에서는 Python에서 다루지 않는 비정상적인 상황을 설명하기 위해 사용자 정의 예외를 허용합니다.

    • 사용자 정의 예외는 상속되어야 합니다. 예외 클래스

    • 사용자 정의 예외는 적극적으로만 트리거될 수 있습니다

    assert 4==5, &#39;test assert&#39;


더 많은 Python 오류 예외 개념과 관련된 기사는 PHP 중국어 웹사이트에 주목하세요!


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