本文共 1366 字,大约阅读时间需要 4 分钟。
错误是代码不符合解释器或编译器的语法要求。
下面是Python中的几种常见异常及其原因:
所有异常都是/baseexception/的子类,主要分为以下几种:
通过错误回溯可以查看错误的原因、执行行数以及具体代码。例如,结合下图可以看到错误发生在文件中的某一行某次操作。
使用try
-except
结构来捕捉和处理异常:
try: # 可能出现错误的代码except: # 捕捉到异常的处理方案
当已知具体异常类型时,可以如下捕获:
try: print(a)except NameError as e: print(f'捕获异常如下:{e}')
此时如果a
未定义,会输出捕获异常如下:name 'a' is not defined
。
可以在一个except
中捕获多个异常:
try: # 可能出现错误的代码except (TabError, NameError): # 捕捉到异常的处理方案
使用Exception
作为捕获范围:
try: # 可能出现错误的代码except Exception: # 捕捉到异常的处理方案
Exception
的子类。结合try
-except
-else
-finally
结构处理异常:
try: # 可能出现错误的代码except Exception as e: # 捕捉到异常的处理方案else: # 没有异常执行finally: # 不管是否出现错误都会执行
可以使用raise
关键字主动抛出异常:
raise ValueError('自定义错误信息')
可以创建自己定义的异常类继承自Exception
:
class CustomException(Exception): passraise CustomException('自定义错误')
assert
后面跟条件,条件不满足会抛出AssertionError
,同时可以传递错误信息。assert 1 == 2, '1不等于2'
结果为AssertionError: 1不等于2
转载地址:http://sowsz.baihongyu.com/