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登录并爬取淘宝信息代码示例
Dec 09 Python
python中abs&amp;map&amp;reduce简介
Feb 20 Python
利用pyinstaller将py文件打包为exe的方法
May 14 Python
python 调用有道api接口的方法
Jan 03 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
python代码编写计算器小程序
Mar 30 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
Aug 12 Python
Python脚本操作Excel实现批量替换功能
Nov 20 Python
python 读写文件包含多种编码格式的解决方式
Dec 20 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
Mar 31 Python
Python用requests库爬取返回为空的解决办法
Feb 21 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/12/05 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
input 输入框内的输入事件详细分析
2010/03/17 Javascript
教你用jquery实现iframe自适应高度
2014/06/11 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
php 修改密码实现代码
2017/05/24 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
一则python3的简单爬虫代码
2014/05/26 Python
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
python查询sqlite数据表的方法
2015/05/08 Python
Python实现的简单算术游戏实例
2015/05/26 Python
简单理解Python中的装饰器
2015/07/31 Python
python实现简单神经网络算法
2018/03/10 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
Python根据服务获取端口号的方法
2019/09/25 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
tensorflow之读取jpg图像长和宽实例
2020/06/18 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
2020/10/21 Python
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
新兵入伍心得体会
2014/09/04 职场文书
学生违反校规检讨书
2014/10/28 职场文书
2015年母亲节寄语
2015/03/23 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL