Python 异常的捕获、异常的传递与主动抛出异常操作示例


Posted in Python onSeptember 23, 2019

本文实例讲述了Python 异常的捕获、异常的传递与主动抛出异常操作。分享给大家供大家参考,具体如下:

异常的捕获

Python 异常的捕获、异常的传递与主动抛出异常操作示例

demo.py(异常的捕获):

try:
  # 提示用户输入一个整数
  num = int(input("输入一个整数:"))
  # 使用 8 除以用户输入的整数并且输出
  result = 8 / num
  print(result)
except ValueError:
  print("请输入正确的整数")
except Exception as result:
  print("未知错误 %s" % result)
else:
  print("未发生异常时,执行的代码")
finally:
  print("无论是否出现异常都会执行的代码")

运行结果:

输入一个整数:0
未知错误 division by zero
无论是否出现异常都会执行的代码

异常的传递

Python 异常的捕获、异常的传递与主动抛出异常操作示例

demo.py(异常的传递):

def demo1():
  return int(input("输入整数:"))
def demo2():
  return demo1()
# 利用异常的传递性,在主程序捕获异常
try:
  print(demo2())
except Exception as result:
  print("未知错误 %s" % result)
# demo1()发生异常 --> 传递给demo2() --> 传递给主程序 print()函数 --> 主程序如果未捕获,程序终止

运行结果:

输入整数:s
未知错误 invalid literal for int() with base 10: 's'

主动抛出异常

Python 异常的捕获、异常的传递与主动抛出异常操作示例

demo.py(raise主动抛出异常):

def input_password():
  # 提示用户输入密码
  pwd = input("请输入密码:")
  # 如果密码长度>=8,返回用户输入的密码
  if len(pwd) >= 8:
    return pwd
  # 如果 < 8 主动抛出异常
  print("主动抛出异常")
  # 1> 创建异常对象
  ex = Exception("密码长度不够")
  # 2> raise 主动抛出异常
  raise ex
# 提示用户输入密码
try:
  print(input_password())
except Exception as result:
  print(result)

运行结果:

请输入密码:123
主动抛出异常
密码长度不够

更多Python相关内容感兴趣的读者可查看本站专题:《Python入门与进阶经典教程》、《Python字符串操作技巧汇总》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用Python读写及压缩和解压缩文件的示例
Jul 08 Python
使用Python检测文章抄袭及去重算法原理解析
Jun 14 Python
Python 等分切分数据及规则命名的实例代码
Aug 16 Python
python反转列表的三种方式解析
Nov 08 Python
numpy:np.newaxis 实现将行向量转换成列向量
Nov 30 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
编写python代码实现简单抽奖器
Oct 20 Python
python操作ini类型配置文件的实例教程
Oct 30 Python
python中tkinter复选框使用操作
Nov 11 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 Python
Python中文分词库jieba(结巴分词)详细使用介绍
Apr 07 Python
Python 单例设计模式用法实例分析
Sep 23 #Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 #Python
详解Python3定时器任务代码
Sep 23 #Python
python应用文件读取与登录注册功能
Sep 23 #Python
Python爬虫 urllib2的使用方法详解
Sep 23 #Python
Python 正则表达式爬虫使用案例解析
Sep 23 #Python
python处理document文档保留原样式
Sep 23 #Python
You might like
php empty函数判断mysql表单是否为空
2010/04/12 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
2017/01/19 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
python用字典统计单词或汉字词个数示例
2014/04/22 Python
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
浅谈MySQL中的触发器
2015/05/05 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
大学军训感想
2014/02/12 职场文书
高中运动会入场词
2014/02/14 职场文书
2015年复活节活动总结
2015/02/27 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
庆祝教师节主持词
2015/07/06 职场文书
请病假条范文
2015/08/17 职场文书