Python的raise用法
学习笔记
1、什么是异常处理
Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行
2、raise的基本格式
raise的基本格式:
raise [exceptionName [(reason)]]
其中,用 [] 括起来的为可选参数,其作用是指定抛出的异常名称,以及异常信息的相关描述。如果可选参数全部省略,则 raise 会把当前错误原样抛出;如果仅省略 (reason),则在抛出异常时,将不附带任何的异常描述信息。
即以下三种情况:
1、raise
2、raise exceptionName
3、raise exceptionName (reason)
参考资料:Python raise用法(超级详细,看了无师自通)
3、raise的三种情况
1)、单独一个 raise。
单独的raise会重新触发前一个异常,如果之前没有触发异常,触发RuntimeError。
第一种情况:上下文中捕获的异常:
由raise抛出本身代码中存在的异常
def test(num):try:100/numexcept Exception as res:print("捕获异常完成")raise
test(0)
运行结果:
第二种情况:默认引发RuntimeError 异常:
def test(num):if num == 100:raiseprint(num)
test(100)
运行结果:
2)raise 异常名称
def Test1(num):try:100/numexcept Exception as res:print("捕获异常完成")print(res)raise ZeroDivisionErrorprint("----在raise之后,不会执行-----")else:print("没有异常")
Test1(0)
运行结果:
其中 异常名称可以为自定义异常名称
class CustomException(Exception):def __init__(self,ErrorInfo):self.ErrorInfo = ErrorInfodef __str__(self):return self.ErrorInfo
def Test1(num):try:raise CustomException('这是一个自定义的异常')except CustomException as res:print(res)
Test1(0)
运行结果:
3)、raise 异常名称(异常描述信息)
def Test1(num):try:100/numexcept Exception as res:print("捕获异常完成")print(res)raise ZeroDivisionError("分母不能为0")print("----在raise之后,不会执行-----")else:print("没有异常")
Test1(0)
运行结果
Python的raise用法相关推荐
- Python中raise用法
是否可以在程序的指定位置手动抛出一个异常?答案是肯定的,Python 允许我们在程序中手动设置异常,使用 raise 语句即可. 读者可能会感到疑惑,即我们从来都是想方设法地让程序正常运行,为什么还要 ...
- Python 异常处理--raise函数用法
Python 异常处理--raise函数用法 参考文章: (1)Python 异常处理--raise函数用法 (2)https://www.cnblogs.com/darkgui34/p/405074 ...
- python里raise是什么意思_Python中raise与raise...from之间有何区别?
本篇文章给大家带来的内容是关于Python中raise 与 raise ... from之间有何区别?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 起步 Python 的 raise ...
- Python 中 raise 和 raise/from 的区别
Python 中 raise 和 raise/from 的使用方法 文章目录 Python 中 raise 和 raise/from 的使用方法 0. 参考资料 1. 代码比较 2. 用法解释 2.1 ...
- Python finally的用法
参考 Python finally的用法 - 云+社区 - 腾讯云 try语句有一个可选finally子句,用于定义在所有情况下都必须执行的finally操作 try:raise KeyboardIn ...
- python raise_python raise
当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常.一旦执行了raise语句,raise后面的语句将不能执行. 演示raise用法 try: s = None if s i ...
- Python3中raise用法
Python中raise语句支持强制触发指定的异常. raise语法: raise [EXPRESSION [from EXPRESSION]] 如果raise后未 ...
- 简单介绍Python中异常处理用法
这篇文章主要给大家分享的是 Python中异常处理用法,为了保证程序的健壮性与容错性,即在遇到错误时候程序不会崩溃,我们需要对异常进行处理,下面来看看文章对此的用法,需要的朋友可以参考一下 为了保证程 ...
- python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解
本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...
最新文章
- Libzip 版本过低或提示reinstall解决方法
- 新版rust怎么拆除建筑_市政工程造价怎么学 龙岗园林市政造价课程
- Windows Live Messenger 8.5 抢先试用
- IOS内存的一篇文章
- mybatisplus修改单个属性_第二节	官封弼马温——类的属性
- [html] 编写html时,你有没有用过Emmet插件呢?说说它的优点及规则有哪些?
- P2661 信息传递 二分图的最小环
- java分隔符 字符串_我们如何使用Java分割带有任何空白字符作为分隔符的字符串?...
- 网络数据包收发流程:从驱动到协议栈
- 名编辑电子杂志大师教程 | 文本复制按钮
- 编程语言中的句柄是什么?
- html复制粘贴的文字自动换行,word中复制的文字出现自动换行怎么办
- ICE java实现helloworld
- C# 消息盒子 右下角显示窗体
- 2020最新PHP面试题(附带答案)
- 量化投资之工具篇一:Backtrader从入门到精通(3)-Cerebro源代码解读
- Ad hoc网络路由协议概述4——按需路由协议(2)AODV协议 (Ad-hoc on-demand distance vector algorithm protocol)
- msvcr110.dll系统文件丢失解决方案
- XiaoHu日志 11/22~12/3
- 韩信点兵(C语言实现)