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解析xml文件实例分享
Dec 04 Python
Python生成随机验证码的两种方法
Dec 22 Python
深入学习python的yield和generator
Mar 10 Python
解决pycharm无法调用pip安装的包问题
May 18 Python
使用pycharm生成代码模板的实例
May 23 Python
python pytest进阶之conftest.py详解
Jun 27 Python
pandas 缺失值与空值处理的实现方法
Oct 12 Python
python global和nonlocal用法解析
Feb 03 Python
Python控制台实现交互式环境执行
Jun 09 Python
Django后端分离 使用element-ui文件上传方式
Jul 12 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
Nov 06 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
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
PHP一些有意思的小区别
2006/12/06 PHP
php过滤危险html代码
2008/08/18 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
php计算税后工资的方法
2015/07/28 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
2014/06/24 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
解决layer.open后laydate失效的问题
2019/09/06 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
2019/09/16 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
Python splitlines使用技巧
2008/09/06 Python
python操作xml文件示例
2014/04/07 Python
Python实现子类调用父类的方法
2014/11/10 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
python2与python3共存问题的解决方法
2018/09/18 Python
一百多行python代码实现抢票助手
2018/09/25 Python
python logging日志模块原理及操作解析
2019/10/12 Python
用Python解数独的方法示例
2019/10/24 Python
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
高级护理专业毕业生推荐信
2013/12/25 职场文书
医药专业应届毕业生求职信范文
2014/01/01 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
违反单位工作制度检讨书
2014/10/25 职场文书
志愿者工作心得体会
2016/01/15 职场文书