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 相关文章推荐
使用setup.py安装python包和卸载python包的方法
Nov 27 Python
Python中使用urllib2防止302跳转的代码例子
Jul 07 Python
Opencv+Python 色彩通道拆分及合并的示例
Dec 08 Python
pandas把所有大于0的数设置为1的方法
Jan 26 Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 Python
Python字典推导式将cookie字符串转化为字典解析
Aug 10 Python
如何解决cmd运行python提示不是内部命令
Jul 01 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
pycharm配置安装autopep8自动规范代码的实现
Mar 02 Python
python基于tkinter实现gif录屏功能
May 19 Python
python实现语音常用度量方法的代码详解
May 25 Python
利用For循环遍历Python字典的三种方法实例
Mar 25 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
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
Python自定义主从分布式架构实例分析
2016/09/19 Python
Python实现的购物车功能示例
2018/02/11 Python
浅谈python3中input输入的使用
2019/08/02 Python
通过实例学习Python Excel操作
2020/01/06 Python
python全局变量引用与修改过程解析
2020/01/07 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
python打包生成so文件的实现
2020/10/30 Python
你的自行车健身专家:FaFit24
2016/11/16 全球购物
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
三方合作协议书范本
2014/04/18 职场文书
关于读书的演讲稿
2014/05/07 职场文书
党支部综合考察材料
2014/05/19 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
怎样写家长意见
2015/06/04 职场文书
python中%格式表达式实例用法
2021/06/18 Python
react 路由Link配置详解
2021/11/11 Javascript
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript