美文网首页
Python中raise和assert的区别

Python中raise和assert的区别

作者: 羋学僧 | 来源:发表于2023-02-04 17:30 被阅读0次

一、使用raise抛出异常

python可以自动触发异常,raise(内置函数)的定义为显示的抛出异常,用户可以使用raise进行判断,显式的引发异常,raise执行后程序将不再向下执行。

式例:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = '40kuai'
books_dict = {'name':'python','pages':390}
key = input('查看属性:')
if key in books_dict:
    print(books_dict[key])
else:
    raise KeyError
 
# 当要查询的属性不在字典中时会触发异常

raise也可以用户创建自定义的异常

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = '40kuai'
 
 
class helei(Exception):  # 继承 Exception
    def __init__(self, msg):
        self.message = msg
 
    def __str__(self):  # 被print调用时执行,可以不写
        return self.message
 
if __name__ == '__main__':
    try:
        raise helei('我的异常')  # 触发异常
    except helei as e:
        print(e)

二、assert使用

assert语句用于检测某个条件表达式是否为真。assert语句又称为断言语句,即assert认为检测的表达式永远为真。

断言用来指定某一操作必须为真。也可以在脚本执行时加上python -O 参数来跳过assert检测。

可以使用assert False 来显示代码编写未完成

三、区别

raise是直接抛出异常 如下使用

raise Exception

assert()是括号里的为False才会抛出一个AssertionError

assert(False)

相关文章

  • Python中raise和assert的区别

    一、使用raise抛出异常 python可以自动触发异常,raise(内置函数)的定义为显示的抛出异常,用户可以使...

  • 断言

    测试框架pyunit,pyounit带assert if+raise可用于被预见到的情况 assert 用于永远不...

  • if与assert的区别

    assert 断言(assert)的语义: if 语义: 区别 1.assert语句仅仅在debug版本中才有效,...

  • 【Python】Debug 工具

    Debug debug的工具主要有print, log, assert, traceback, Raise Err...

  • nodejs的一些方法

    assert assert.deepEqual()和assert.equal()有点区别! 一开时我们需要这么做:...

  • 2018-06-04 python assert

    转载自python assert的作用 一、python assert的作用: 根据Python 官方文档解释(h...

  • python assert作用

    python assert作用 Assert statements are a convenient way to...

  • python - 自定义异常和主动抛出异常(raise)

    python自定义异常和主动抛出异常(raise)

  • Python assert的用法

    1 assert的作用 当condition不成立的时候,那么程序会raise一个AssertionError出来...

  • 异常抛出

    本章主要内容 用try语句捕获异常 常见异常处理 用raise 和assert抛出异常 自定义异常 常用异常名 总...

网友评论

      本文标题:Python中raise和assert的区别

      本文链接:https://www.haomeiwen.com/subject/gciohdtx.html