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中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
python散点图实例之随机漫步
Aug 27 Python
浅谈Python traceback的优雅处理
Aug 31 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
python+flask实现API的方法
Nov 21 Python
Python八皇后问题解答过程详解
Jul 29 Python
python 实现list或string按指定分段
Dec 25 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
python实现在线翻译功能
Mar 03 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 Python
Python中pass的作用与使用教程
Nov 13 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 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多个文件上传到服务器实例
2014/10/29 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
PHP getName()函数讲解
2019/02/03 PHP
php生成短网址/短链接原理和用法实例分析
2020/05/29 PHP
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
javascript写的一个链表实现代码
2009/10/25 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
2013/04/23 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
Python变量访问权限控制详解
2019/06/29 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
python安装gdal的两种方法
2019/10/29 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
水果花束:Fruit Bouquets
2017/12/20 全球购物
企业给企业的表扬信
2014/01/13 职场文书
会计电算化专业求职信
2014/06/10 职场文书
销售代理协议书
2014/09/30 职场文书
离婚协议书格式范本
2016/03/18 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers
mysql幻读详解实例以及解决办法
2022/06/16 MySQL