Python运行异常管理解决方案


Posted in Python onMarch 09, 2020

1 前言

Python使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让Python不知所措的错误时,它都会创建一个异常对象。

如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。

异常是使用try-except代码块处理的。try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办。

使用了try-except代码块时,即便出现异常,程序也将继续运行。

2 运用try-except代码块

我们知道,除数是不能为0的,当程序员误将除数设置为0时,将会出现ZeroDivisionError错误。

实现代码:

try:
   print(6/0)
 except ZeroDivisionError:
   print("you can not divide by zero!")

运行结果:

you can not divide by zero!

工作原理:

将可能出现错误的代码放在try代码块中,如果运行无错误,将跳过except代码块;若导致了错误,Python将查找except代码块,并执行其中的代码。

这样一来,当运行出错时,用户看到的便是一条友好的错误信息。

若try-except后面还有其他代码,那么程序将接着运行。

3 运用try-except-else代码块

实现代码:

print("Please input two numbers, and I will divide them.")
print("Enter 'q' to quit.")

while True:
  first_num = input("\nFirst number: ")
  if first_num == 'q':
    break
  second_num = input("Second number: ")

  try:
    answer = int(first_num) / int(second_num)
  except ZeroDivisionError:
    print("you can not divide by zero!")
  else:
    print(answer)

运行结果:

Python运行异常管理解决方案

工作原理:

一般地,将可能发生异常的代码放在try代码块中。

Python尝试执行try代码块中代码,如果发生错误,则执行except中程序代码;如果运行正常,则执行else代码块中的代码。

这样一来,就有效地避免了可能发生的错误带来的程序崩溃问题,让程序变得更加健壮。

4 运用pass语句

实现代码:

while True:
  first_num = input("\nFirst number: ")
  if first_num == 'q':
    break
  second_num = input("Second number: ")

  try:
    answer = int(first_num) / int(second_num)
  except ZeroDivisionError:
    pass
  else:
    print(answer)

运行结果:

Python运行异常管理解决方案

工作原理:

10 当代码执行出错时,Python将会执行except代码块中的pass语句。pass语句既不会出现traceback,也没有任何输出。

此外,pass语句还可充当占位符,用于提醒程序员该处还未定义任何语句,后面可能会定义语句。

5 小结

到这里,我们就了解了一些处理异常的方式,我们可以根据不同的需求,决定是否向用户报告错误以及怎样报告错误,有效地避免一些异常带来的程序崩溃。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python三元运算符实现方法
Dec 17 Python
利用Python实现在同一网络中的本地文件共享方法
Jun 04 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
在pycharm中设置显示行数的方法
Jan 16 Python
flask的orm框架SQLAlchemy查询实现解析
Dec 12 Python
三个python爬虫项目实例代码
Dec 28 Python
python2.7使用scapy发送syn实例
May 05 Python
Python基于numpy模块实现回归预测
May 14 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 Python
python文本处理的方案(结巴分词并去除符号)
May 26 Python
Python Matplotlib绘制等高线图与渐变色扇形图
Apr 14 Python
Python软件包安装的三种常见方法
Jul 07 Python
Python爬虫程序架构和运行流程原理解析
Mar 09 #Python
python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)
Mar 09 #Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
Mar 09 #Python
pycharm实现在虚拟环境中引入别人的项目
Mar 09 #Python
Python 面向对象静态方法、类方法、属性方法知识点小结
Mar 09 #Python
python微信公众号开发简单流程实现
Mar 09 #Python
Python 面向对象部分知识点小结
Mar 09 #Python
You might like
php笔记之常用文件操作
2010/10/12 PHP
destoon官方标签大全
2014/06/20 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
php文件缓存方法总结
2016/03/16 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
DHTML Slide Show script图片轮换
2008/03/03 Javascript
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
2019/12/20 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
浅析matlab中imadjust函数
2020/02/27 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
Python如何测试stdout输出
2020/08/10 Python
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
2014庆六一活动方案
2014/03/02 职场文书
财务总监管理职责范文
2014/03/09 职场文书
文化活动实施方案
2014/03/28 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
导游词之镇江焦山
2019/11/21 职场文书