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实现dict版图遍历示例
Feb 19 Python
理解python多线程(python多线程简明教程)
Jun 09 Python
python服务器端收发请求的实现代码
Sep 29 Python
Python去除列表中重复元素的方法
Mar 20 Python
python MysqlDb模块安装及其使用详解
Feb 23 Python
python3.6使用pymysql连接Mysql数据库
May 25 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
python实现给scatter设置颜色渐变条colorbar的方法
Dec 13 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
python Tensor和Array对比分析
Jan 08 Python
使用python+poco+夜神模拟器进行自动化测试实例
Apr 23 Python
Python Django路径配置实现过程解析
Nov 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
一个多文件上传的例子(原创)
2006/10/09 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
PHP中SESSION的注销与清除
2015/04/16 PHP
php错误日志简单配置方法
2016/07/11 PHP
JavaScript版代码高亮
2006/06/26 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
老生常谈js数据类型
2017/08/03 Javascript
JavaScript编写的网页小游戏,很给力
2017/08/18 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
js实现车辆管理系统
2020/08/26 Javascript
Python中apply函数的用法实例教程
2014/07/31 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
python抓取文件夹的所有文件
2018/02/27 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
python使用配置文件过程详解
2019/12/28 Python
戴森英国官网:Dyson英国
2019/05/07 全球购物
PHP如何与mysql建立链接
2013/05/05 面试题
英文自我鉴定
2013/12/10 职场文书
幼儿园教师教学反思
2014/02/06 职场文书
抵押贷款承诺书
2014/05/30 职场文书
2014年个人委托书范本
2014/10/13 职场文书
董事会决议范本
2015/07/01 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书
Python测试框架pytest高阶用法全面详解
2022/06/01 Python
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS