在Python中处理异常使用的是try-except代码块,try-except代码块放入让python执行的操作,同时告诉python程序如果发生了异常该怎么办,try-except这个功能其实很多入门书籍中都放到了高级篇幅里,在入门的时候一般不会讲这个使用,尤其是作为运维人员,如果你经常写shell,转到python后估计也很少使用这个功能,这功能我觉得说明了shell和python的一个重要区别,因为python是一门真正的编程语言,像其它的编程语言php,java等都会提供异常捕获功能,用这些程序写出的代码是要健壮性的,如果你阅读一些其他人写的程序代码,尤其是一些socket编程方面的代码,很多都是try…except…,有的还except好多个,来判断各种各样的情况,既然这个功能这么有用,我们就来尽快了解下看如何使用的吧。

第一我们先看看它的语法,语法很简单,就是在try-except中放入你想要执行的代码块,例如:、

try:

somecode1

except 异常类型/名称:

somecode2

这是最简单的一种情况,如果情况复杂可以使用多个except句子,例如:

try:

somecode0

except 异常类型/名称1:

somecode1

except 异常2:

somecode2

except 异常3:

somecode3

try-except还有更高级的用法,加入else,finally等,今天我们不展开说了有兴趣的可以自己深入研究下。

接下来我们来看一个简单例子,读写文件我们经常的操作,一个常见的问题就是找不到文件,或者文件名称,路径不正确,对这种情况,你就可以采用try-except代码块直观的方式来处理了:

try:

withopen(filename, 'r+') as fp:

data = fp.read()

exceptIOError:

msg = 'sorry, can not read or write this ' + filename

printmsg

我们再看一个多except的例子,2个数字相减:

loop = 1

while loop == 1:

try:

a = input('请输入第一个数字> ')

b = input('请输入第二个数字 > ')

exceptNameError:

print "请输入数字,不能输入字母"

continue

exceptSyntaxError:

print "请仅输入一个数字."

continue

print a - b

try:

loop = input('按1再开始 > ')

except (NameError,SyntaxError):

loop = 0

以上二个例子就是最简单的try-except的用法了,如果想要保证脚本的健壮性,后续可多用try-except代码块吧,这会让你的代码看起来更专业。

python3捕获异常_python中异常捕获方法详解相关推荐

  1. python2和python3分别是python的两个版本_Windows下Python2与Python3两个版本共存的方法详解...

    前言 一向用Python 3,最近研究微信公众号开发,各云平台只支持Python 2.7,想用其他版本需要自己搭建环境.而网上又搜不到Python 3开发微信公众号的资料.暂打算先使用Python 2 ...

  2. python 归一化还原_对python3 一组数值的归一化处理方法详解

    1.什么是归一化: 归一化就是把一组数(大于1)化为以1为最大值,0为最小值,其余数据按百分比计算的方法.如:1,2,3.,那归一化后就是:0,0.5,1 2.归一化步骤: 如:2,4,6 (1)找出 ...

  3. python对每一列进行归一化_对python3 一组数值的归一化处理方法详解

    1.什么是归一化: 归一化就是把一组数(大于1)化为以1为最大值,0为最小值,其余数据按百分比计算的方法.如:1,2,3.,那归一化后就是:0,0.5,1 2.归一化步骤: 如:2,4,6 (1)找出 ...

  4. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  5. Java中的main()方法详解

    源文作者:leizhimin    源文链接:http://lavasoft.blog.51cto.com/62575/53263 源文作者版权申明: 版权声明:原创作品,允许转载,转载时请务必以超链 ...

  6. Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)

    Python 在子类中调用父类方法详解(单继承.多层继承.多重继承)   by:授客 QQ:1033553122   测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...

  7. php 文件扫描去重,PHP中的去重方法详解和文件下载

    本文主要和大家分享PHP中的去重方法详解和文件下载,在php中文件导入过程中,经常会遇到重复事件,那么就需要我们去重,然后进行下载. 1.思想 先设置一个存储主键数组,和一个空数组.解析文件,然后看要 ...

  8. keep alive PHP,vue中keep-alive使用方法详解

    这次给大家带来vue中keep-alive使用方法详解,vue中keep-alive使用的注意事项有哪些,下面就是实战案例,一起来看一下. 1.keep-alive的作用以及好处 在做电商有关的项目中 ...

  9. java中main是什么_Java中的main()方法详解

    在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是 ...

最新文章

  1. Objective - C基础: 第一天 - 1. 第1, 2个OC程序
  2. 【经典回放】多种语言系列数据结构线性表之一:顺序表
  3. [XSY3343] 程序锁(DP)
  4. linux中fcntl()、lockf、flock的区别
  5. tableview或scrollview Y轴发生变化解决方案
  6. resource fork, Finder information, or similar detr
  7. extjs中store获取后台数据_Excel实战技巧64: 从工作簿中获取数据(不使用VBA)
  8. python-day02
  9. litepal创建数据库表失败
  10. arttemplate模板引擎里面多层循环
  11. android最新图表框架,Android中绘制图表的开源框架AChartEngine初识
  12. 还敢乱写代码??腾讯 Code Review 规范出炉!
  13. linux下部署maven的web项目
  14. MFC C++视频播放和视频的浓缩播放和检测目标接口
  15. Lifeline功能介绍03——课堂信息的查询
  16. 数据图像处理——期末复习知识点
  17. yui2 datatable转换至yui3 (3)
  18. redis 安装
  19. html画圆圈原理,HTML5如何划线和画圆
  20. Open JDK 8.0_152-b16 崩溃 : [libzip.so+0x12522] newEntry+0x62

热门文章

  1. 排序算法html,排序算法总结.html
  2. 电脑机器人_视频|电话积分换平板电脑和扫地机器人?女子拿回家后……-
  3. linux清空redis命令,使用Linux管道批量删除Redis的key
  4. windows和ubuntu双系统设置开机默认系统
  5. pat 乙级 1047 编程团体赛(C++)
  6. 国家开放大学2021春1118机电一体化系统设计基础题目
  7. 物联网应用领域-物联网智能安全始于产品开发
  8. 智能家居常用的十大应用场景
  9. mysql集群软件有哪些_浅谈数据库集群软件优缺点有哪些
  10. java 面向对象继承的思想_Java面向对象思想