Python3 错误和异常-(try/except/else/finally/raise/assert)

一、异常处理

来个总的图例子:

Python3 错误和异常-(try/except/else/finally/raise/assert)

以下实例中 finally 语句无论异常是否发生都会执行:

Python3 错误和异常-(try/except/else/finally/raise/assert)

二、抛出异常

Python 使用 raise 语句抛出一个指定的异常。

raise语法格式如下:

raise [Exception [, args [, traceback]]]

第一个参数someException是触发异常的名称,异常名称是Python提供的标准异常中的任何一种;

第二个参数args是可选的,args可以是一个元组,也可以是单独的字符串。大多数情况下,单一的字符串用来指示错误发生的原因。如果传的是元组,通常的组成是一个错误字符串、一个错误编号、一个处理错误的函数地址等;

第三个参数是一个traceback对象,它也是可选的,实际上这个参数很少使用,主要是用于跟踪错误记录。

Python3 错误和异常-(try/except/else/finally/raise/assert)

使用raise语句可以主动抛出异常,用于处理因一些因用户错误操作和输入而产生的问题。Python提供的标准异常有可能不满足程序一些特定的异常处理需求。例如用户操作和输入错误的一些异常。在这种情况下,可以创建自己的异常。

新创建的异常需要继承于标准异常的基类或子类,这里可能会涉及到类的概念,关于类的概念,我们会在后面的章节予以介绍。下面是一个新建异常的例子。

Python3 错误和异常-(try/except/else/finally/raise/assert)

上面的代码新建了一个CustomError异常类,CustomError异常类继承于Python标准异常的Exception类。在下面的代码中,我们修改前面用户登录判断的案例代码,并使用自己新建的CustomError异常来处理问题。

Python3 错误和异常-(try/except/else/finally/raise/assert)

三、Python3 assert(断言)

Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。

断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况,例如我们的代码只能在 Linux 系统下运行,可以先判断当前系统是否符合条件。

python assert 断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助

python assert断言的作用

python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达式为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。

语法格式如下

assert expression

等价于:

if not expression:

raise AssertionError

   

assert 后面也可以紧跟参数:

assert expression [, arguments]

等价于:

if not expression:

raise AssertionError(arguments)

   

https://www.runoob.com/python3/python3-errors-execptions.html

上一篇:VSCode Ubuntu下调试失败 无法打开 libc-start.c raise.c等


下一篇:使用PopupContainerEdit和PopupContainerControl制作下拉菜单树小记