美文网首页
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的区别

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