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中MySQLdb的事务处理功能
Sep 21 Python
python利用拉链法实现字典方法示例
Mar 25 Python
Python实现的视频播放器功能完整示例
Feb 01 Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
Pytorch 多块GPU的使用详解
Dec 31 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
Python ATM功能实现代码实例
Mar 19 Python
Python爬取微信小程序Charles实现过程图解
Sep 29 Python
Pycharm 跳转回之前所在页面的操作
Feb 05 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
咖啡因含量是由谁决定的?低因咖啡怎么来?低因咖啡适合什么人喝
2021/03/06 新手入门
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
jquery 模板的应用示例
2013/11/12 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
微信小程序网络请求实现过程解析
2019/11/06 Javascript
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
Python selenium 三种等待方式解读
2016/09/15 Python
java中的控制结构(if,循环)详解
2019/06/26 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
Snapfish爱尔兰:在线照片打印和个性化照片礼品
2018/09/17 全球购物
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
高中生自我评价个人范文
2013/11/09 职场文书
药店促销活动策划方案
2014/08/24 职场文书
司机岗位职责范本
2015/04/10 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
MongoDB日志切割的三种方式总结
2021/09/15 MongoDB
浅谈Python中对象是如何被调用的
2022/04/06 Python