python3捕获异常_python中异常捕获方法详解
在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中异常捕获方法详解相关推荐
- python2和python3分别是python的两个版本_Windows下Python2与Python3两个版本共存的方法详解...
前言 一向用Python 3,最近研究微信公众号开发,各云平台只支持Python 2.7,想用其他版本需要自己搭建环境.而网上又搜不到Python 3开发微信公众号的资料.暂打算先使用Python 2 ...
- python 归一化还原_对python3 一组数值的归一化处理方法详解
1.什么是归一化: 归一化就是把一组数(大于1)化为以1为最大值,0为最小值,其余数据按百分比计算的方法.如:1,2,3.,那归一化后就是:0,0.5,1 2.归一化步骤: 如:2,4,6 (1)找出 ...
- python对每一列进行归一化_对python3 一组数值的归一化处理方法详解
1.什么是归一化: 归一化就是把一组数(大于1)化为以1为最大值,0为最小值,其余数据按百分比计算的方法.如:1,2,3.,那归一化后就是:0,0.5,1 2.归一化步骤: 如:2,4,6 (1)找出 ...
- java多线程中的join方法详解
java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...
- Java中的main()方法详解
源文作者:leizhimin 源文链接:http://lavasoft.blog.51cto.com/62575/53263 源文作者版权申明: 版权声明:原创作品,允许转载,转载时请务必以超链 ...
- Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)
Python 在子类中调用父类方法详解(单继承.多层继承.多重继承) by:授客 QQ:1033553122 测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...
- php 文件扫描去重,PHP中的去重方法详解和文件下载
本文主要和大家分享PHP中的去重方法详解和文件下载,在php中文件导入过程中,经常会遇到重复事件,那么就需要我们去重,然后进行下载. 1.思想 先设置一个存储主键数组,和一个空数组.解析文件,然后看要 ...
- keep alive PHP,vue中keep-alive使用方法详解
这次给大家带来vue中keep-alive使用方法详解,vue中keep-alive使用的注意事项有哪些,下面就是实战案例,一起来看一下. 1.keep-alive的作用以及好处 在做电商有关的项目中 ...
- java中main是什么_Java中的main()方法详解
在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是 ...
最新文章
- Objective - C基础: 第一天 - 1. 第1, 2个OC程序
- 【经典回放】多种语言系列数据结构线性表之一:顺序表
- [XSY3343] 程序锁(DP)
- linux中fcntl()、lockf、flock的区别
- tableview或scrollview Y轴发生变化解决方案
- resource fork, Finder information, or similar detr
- extjs中store获取后台数据_Excel实战技巧64: 从工作簿中获取数据(不使用VBA)
- python-day02
- litepal创建数据库表失败
- arttemplate模板引擎里面多层循环
- android最新图表框架,Android中绘制图表的开源框架AChartEngine初识
- 还敢乱写代码??腾讯 Code Review 规范出炉!
- linux下部署maven的web项目
- MFC C++视频播放和视频的浓缩播放和检测目标接口
- Lifeline功能介绍03——课堂信息的查询
- 数据图像处理——期末复习知识点
- yui2 datatable转换至yui3 (3)
- redis 安装
- html画圆圈原理,HTML5如何划线和画圆
- Open JDK 8.0_152-b16 崩溃 : [libzip.so+0x12522] newEntry+0x62
热门文章
- 排序算法html,排序算法总结.html
- 电脑机器人_视频|电话积分换平板电脑和扫地机器人?女子拿回家后……-
- linux清空redis命令,使用Linux管道批量删除Redis的key
- windows和ubuntu双系统设置开机默认系统
- pat 乙级 1047 编程团体赛(C++)
- 国家开放大学2021春1118机电一体化系统设计基础题目
- 物联网应用领域-物联网智能安全始于产品开发
- 智能家居常用的十大应用场景
- mysql集群软件有哪些_浅谈数据库集群软件优缺点有哪些
- java 面向对象继承的思想_Java面向对象思想