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分析网页上所有超链接的方法
May 08 Python
六个窍门助你提高Python运行效率
Jun 09 Python
从运行效率与开发效率比较Python和C++
Dec 14 Python
利用python提取wav文件的mfcc方法
Jan 09 Python
Django框架封装外部函数示例
May 28 Python
python中selenium操作下拉滚动条的几种方法汇总
Jul 14 Python
django-rest-swagger的优化使用方法
Aug 29 Python
使用Python实现 学生学籍管理系统
Nov 26 Python
Scrapy框架基本命令与settings.py设置
Feb 06 Python
Python求凸包及多边形面积教程
Apr 12 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
Python根据字符串调用函数过程解析
Nov 05 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+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
在类Unix系统上开始Python3编程入门
2015/08/20 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
Python的UTC时间转换讲解
2019/02/26 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
python调用接口的4种方式代码实例
2019/11/19 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
Python使用Chrome插件实现爬虫过程图解
2020/06/09 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
生产内勤岗位职责
2013/12/07 职场文书
酒店管理毕业生自荐信
2014/05/25 职场文书
党建目标管理责任书
2014/07/25 职场文书
政风行风评议整改方案
2014/09/15 职场文书
干部作风建设工作总结
2014/10/29 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
详解Node.js如何处理ES6模块
2021/05/15 Javascript