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中enumerate函数用法实例分析
May 20 Python
Python之py2exe打包工具详解
Jun 14 Python
Python如何生成树形图案
Jan 03 Python
python中的常量和变量代码详解
Jul 25 Python
详解通过API管理或定制开发ECS实例
Sep 30 Python
pandas把所有大于0的数设置为1的方法
Jan 26 Python
使用Pandas将inf, nan转化成特定的值
Dec 19 Python
Python JSON编解码方式原理详解
Jan 20 Python
Python reversed函数及使用方法解析
Mar 17 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
Mar 18 Python
使用python实现飞机大战游戏
Mar 23 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 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
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
laravel安装和配置教程
2014/10/29 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
[01:01:22]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[05:24]TI9采访——教练
2019/08/24 DOTA
python中for语句简单遍历数据的方法
2015/05/07 Python
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
python设置中文界面实例方法
2020/10/27 Python
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
RealTek面试题
2016/06/28 面试题
球队口号
2014/06/18 职场文书
居住证明范文
2015/06/17 职场文书
php实例化对象的实例方法
2021/11/17 PHP