Python 允许程序自行引发异常,使用 raise 语句即可。

异常是一种很“主观”的说法,以下雨为例,假设大家约好明天去爬山郊游,如果第二天下雨了,这种情况会打破既定计划,就属于一种异常;但对于正在期盼天降甘霖的农民而言,如果第二天下雨了,他们正好随雨追肥,这就完全正常。

很多时候,系统是否要引发异常,可能需要根据应用的业务需求来决定,如果程序中的数据、执行与既定的业务需求不符,这就是一种异常。由于与业务需求不符而产生的异常,必须由程序员来决定引发,系统无法引发这种异常。

如果需要在程序中自行引发异常,则应使用 raise 语句,该语句的基本语法格式为:raise [exceptionName [(reason)]]

其中,用 [] 括起来的为可选参数,其作用是指定抛出的异常名称,以及异常信息的相关描述。如果可选参数全部省略,则 raise 会把当前错误原样抛出;如果仅省略 (reason),则在抛出异常时,将不附带任何的异常描述信息。

也就是说,raise 语句有如下三种常用的用法:

1、raise:单独一个 raise。该语句引发当前上下文中捕获的异常(比如在 except 块中),或默认引发 RuntimeError 异常。

2、raise 异常类名称:raise 后带一个异常类名称。该语句引发指定异常类的默认实例。

3、raise 异常类名称(描述信息):在引发指定异常的同时,附带异常的描述信息。

上面三种用法最终都是要引发一个异常实例(即使指定的是异常类,实际上也是引发该类的默认实例),raise 语句每次只能引发一个异常实例。

python里raise是什么意思_python raise有什么用相关推荐

  1. python里的shell是什么_python中的shell操作

    http://blog.csdn.net/meng_tianshi/article/details/6682317 首先介绍一个函数: os.system(command) 这个函数可以调用shell ...

  2. python里的属性是什么_python属性 python 里的属性是什么意思?

    python 里的属性是什么意思? 刚开始看python教程,不是很明白."属性,属性方法,方法"这些是什么意你说的是对象吧 Python是面向对象的语言,在python中一切皆对 ...

  3. python raise和except区别_python raise和assert的区别

    python中raise和assert的区别 一.使用raise抛出异常 python可以自动触发异常,raise(内置函数)的定义为显示的抛出异常,用户可以使用raise进行判断,显式的引发异常,r ...

  4. python里dir是什么意思_python中dir什么作用

    python中dir的作用是:1.dir函数传入数据类型返回该数据类型的所有内置方法:2.dir函数传入模块名返回该模块的所有属性和方法. dir() 内置函数的作用 python 内置方法有很多,无 ...

  5. python里find是什么函数_Python find函数用法和概念

    原博文 2018-11-21 14:31 − 概念: Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范 ...

  6. python里object是什么类型_Python中的object这个叫做基类的类,它的属性和行为都有哪些?...

    声明:以下仅为个人学习Python过程中总结的比较自洽的理解,事实上Python面向对象模型可能没那么简单.经查阅,Python在以前的版本还有不继承自object的类,叫做经典类. 用dir(obj ...

  7. python里遍历筛选xml文件_python xml.etree.ElementTree遍历xml所有节点实例详解

    python xml.etree.ElementTree遍历xml所有节点 XML文件内容: 代码: #-*- coding: UTF-8 -*- # 从文件中读取数据 import xml.etre ...

  8. python里的关键字有哪些_Python中的yield关键字做了什么?

    Python中的yield关键字做了什么 要理解yield做了什么,就必须明白生成器(generators)为何物,而在明白生成器之前还要知道迭代器(iterables). 1.迭代器 当我们创建一个 ...

  9. python里format有什么用_python的format什么意思

    format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型(推荐学习:Python视频教程) ...

最新文章

  1. 基础知识——if语句和字典(四)
  2. 【PAT乙级】1088 三人行 (20 分)
  3. fedora 20   无法打开wifi
  4. linux-ftools查看Linux 的cached里面有哪些内容
  5. 计算机专业英语课后答案北京理工大学,计算机专业英语
  6. Jedis对redis分布式锁的操作(设置过期时间,UUID,LUA脚本)
  7. scala-协变、逆变、上界、下界
  8. H264视频解码器C++工程说明
  9. 如何走出创新者的窘境?走向2049
  10. linux开机启动rsync,rsync 开机自动启动
  11. 射线检测C语言,Unity - Raycast 射线检测
  12. 服务器linux攻击方法,Linux操作系统中实现DDOS攻击的方法
  13. Node的文件操作、文件系统、数据流
  14. 英语文本处理工具库——spaCy
  15. firefox 浏览器证书问题
  16. 16位流水线CPU设计(部分)
  17. 【Unity】:从【3ds Max】为人形骨骼 humanoid 添加动画
  18. 计算机模拟虚拟筛选操作流程
  19. echart简单使用
  20. 关于禁用复制粘贴软件教程

热门文章

  1. 原创|Android Jetpack Compose 最全上手指南
  2. 什么是粘包和拆包,Netty如何解决粘包拆包?
  3. LCD液晶屏接口和显示器接口介绍
  4. 从iPhone6S发售谈富士康电商富连网
  5. 计算机视觉——DoG和LoG算子
  6. 微信小程序商城高并发解决方案
  7. Visual C++中error spawning cl.exe错误的两种解决方法
  8. 互联网的女性主义特征(转载)
  9. IAR中eww、ewp、ewd···等各文件的含义和用途
  10. 疫情期间在家办公信息安全指南