python中异常捕获方法详解


Posted in Python onMarch 03, 2017

在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代码块吧,这会让你的代码看起来更专业。

Python 相关文章推荐
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
Apr 18 Python
python调用tcpdump抓包过滤的方法
Jul 18 Python
python中dir()与__dict__属性的区别浅析
Dec 10 Python
解决项目pycharm能运行,在终端却无法运行的问题
Jan 19 Python
python pytest进阶之conftest.py详解
Jun 27 Python
在Pycharm中调试Django项目程序的操作方法
Jul 17 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
详解python中index()、find()方法
Aug 29 Python
Pycharm IDE的安装和使用教程详解
Apr 30 Python
浅谈python 调用open()打开文件时路径出错的原因
Jun 05 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
python利用不到一百行代码实现一个小siri
Mar 02 #Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 #Python
Python正则表达式教程之二:捕获篇
Mar 02 #Python
Python正则表达式教程之一:基础篇
Mar 02 #Python
Python单例模式实例详解
Mar 01 #Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 #Python
python 截取 取出一部分的字符串方法
Mar 01 #Python
You might like
PHP写UltraEdit插件脚本实现方法
2011/12/26 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
PHP大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
js程序中美元符号$是什么
2008/06/05 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
两种方法解决javascript url post 特殊字符转义 + & #
2016/04/13 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
2018/02/05 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
python生成器的使用方法
2013/11/21 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
Python set常用操作函数集锦
2017/11/15 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
Python语法分析之字符串格式化
2019/06/13 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
python文字转语音实现过程解析
2019/11/12 Python
用python写爬虫简单吗
2020/07/28 Python
个人简历自荐信
2013/12/05 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
酒店财务总监岗位职责
2015/04/03 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
mysql的单列多值存储实例详解
2022/04/05 MySQL
python manim实现排序算法动画示例
2022/08/14 Python