예외 처리 사용법: 프로그램의 견고성과 내결함성을 보장하려면, 즉 오류가 발생해도 프로그램이 중단되지 않도록 하려면 예외를 처리해야 합니다.
# 🎜🎜#1, 오류가 발생하는 조건이 예측 가능한 경우 if를 사용하여 오류가 발생하기 전에 이를 처리하고 방지해야 합니다 #🎜 🎜#AGE=10 while True: age=input('>>: ').strip() if age.isdigit(): #只有在age为字符串形式的整数时,下列代码才不会出错,该条件是可预知的 age=int(age) if age == AGE: print('you got it') break
2, 오류가 발생하는 조건을 예측할 수 없는 경우 try..Exception을 사용해야 합니다. 오류 발생 후 처리
#기본 구문은 #🎜🎜입니다. #
try:#🎜 🎜#감지된 코드 블록
Exception 예외 유형:
일단 try에서 예외가 감지되면 이 논리는 다음과 같습니다. location이 실행됩니다
#举例 try: f=open('a.txt') g=(line.strip() for line in f) print(next(g)) print(next(g)) print(next(g)) print(next(g)) print(next(g)) except StopIteration: f.close()
🎜🎜#1이 있어야 합니다. 예외 클래스는 지정된 예외만 처리할 수 있습니다.
s1 = 'hello' try: int(s1) except IndexError as e: # 未捕获到异常,程序直接报错 print e
2 , more Branch
s1 = 'hello' try: int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e)
3, 범용 예외 Exception
s1 = 'hello' try: int(s1) except Exception as e: print(e)
4, 다중 분기+Exception
s1 = 'hello' try: int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e) except Exception as e: print(e)
5, 기타 예외 메커니즘(try. ..finally 구문)
try...finally 문은 예외 발생 여부에 관계없이 최종 코드를 실행합니다. 구문은 다음과 같습니다:
try: <语句> finally: <语句> #退出try时总会执行 raise
예:
s1 = 'hello' try: int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e) #except Exception as e: # print(e) else: print('try内代码块没有异常则执行我') finally: print('无论异常与否,都会执行该模块,通常是进行清理工作')
6, 적극적으로 예외 트리거(raise 문)
raise 문을 사용하여 다음을 수행할 수 있습니다. 스스로 예외를 발생시킵니다. 구문 형식은 다음과 같습니다.
raise [Exception [, args [, traceback]]]
문의 예외는 예외 유형(예: NameError)이고 매개 변수는 예외 매개 변수 값입니다. 이 매개변수는 선택사항입니다. 제공되지 않은 경우 예외 매개변수는 "None"입니다.
마지막 매개변수는 선택사항이며(실제로는 거의 사용되지 않음) 존재하는 경우 추적 예외 개체입니다.
예:
예외는 문자열, 클래스 또는 개체일 수 있습니다. Python 커널에서 제공되는 대부분의 예외는 클래스 인스턴스의 매개변수인 인스턴스화된 클래스입니다.
예외 정의는 다음과 같이 매우 간단합니다:
def functionName( level ): if level < 1: raise Exception("Invalid level!", level) # 触发异常后,后面的代码就不会再执行
try: raise TypeError('类型错误') except Exception as e: print(e)
7, 사용자 정의 예외
새 예외 클래스를 생성하여 프로그램은 다음과 같은 이름을 지정할 수 있습니다. 그들만의 예외. 예외는 일반적으로 Exception 클래스에서 직접 또는 간접적으로 상속되어야 합니다.
다음은 BaseException과 관련된 예제입니다. 예제에서는 기본 클래스가 BaseException이며, 이는 예외가 발생했을 때 더 많은 정보를 출력하는 데 사용됩니다.
try 문 블록에서는 사용자 정의 예외 이후에 Except 블록 문이 실행됩니다. 변수 e는 Networkerror 클래스의 인스턴스를 만드는 데 사용됩니다.
class Networkerror(BaseException): def __init__(self,msg): self.msg=msg def __str__(self): return self.msg try: raise Networkerror('类型错误') except Networkerror as e: print(e)
8, 주장: 조건 주장
assert 1 == 1 assert 1 == 2
9, 요약 시도...제외
1, 실제 작업과 별도의 오류 처리
2, 코드가 정리하기 쉽고 명확하며 복잡한 작업을 구현하기가 더 쉽습니다.
3, 더 안전하고 작은 과실로 인해 프로그램이 우발적으로 충돌하지 않을 것이라는 데는 의심의 여지가 없습니다
위 내용은 Python에서 예외를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!