python零基础入门五小时(从0开始的Python学习016异常)
python零基础入门五小时
从0开始的Python学习016异常简介
当你的程序不能正常运行的时候,python会在控制台打印一段提醒,告诉你一个错误,这个错误就是异常。
错误
我在控制台写了一段无效的代码,将print()的括号去掉,在执行这条语句的时候,系统提示语法错误,无效的语句(我百度翻译的)。这就是错误处理器所作的工作。
再换一种方式写错误:
在程序获取用户输入的时候,我们使用ctrl+d引发了一个eoferror错误,接下来我们尝试去处理这样的错误。
处理异常
使用try---except语句来处理异常。我们通常把容易产生异常的语句放置在try块中,把做异常处理的语句放在except块中。
|
import sys try : a = input ( 'enter something:' ) except (eoferror): print ( '\nwhy did you do an eof on me ?' ) sys.exit() except : print ( '\nsome error/exception occurred.' ) print ( 'done' ) |
运行结果
我们把所有可能引发错误的语句放在try
块中,然后在except
从句/块中处理所有的错误和异常。except
从句可以专门处理单一的错误或异常,或者一组包括在圆括号内的错误/异常。如果没有给出错误或异常的名称,它会处理 所有的 错误和异常。对于每个try
从句,至少都有一个相关联的except
从句。
你还可以让try..catch
块关联上一个else
从句。当没有异常发生的时候,else
从句将被执行。
|
import sys try : a = input ( 'enter something:' ) except (eoferror): print ( '\nwhy did you do an eof on me ?' ) sys.exit() except : print ( '\nsome error/exception occurred.' ) else : print ( 'no error' ) print ( 'done' ) |
运行结果
raise引发异常
你可以使用raise语句抛出异常。你需要指明错误/异常的名称和伴随异常触发的异常对象。这个异常应该是error和exception类的子类。这就用到了继承的思想,使用__init__方法初始一些方法和参数。
|
class shortinputexception(exception): def __init__( self ,length,atleast): exception.__init__( self ) self .length = length self .atleast = atleast try : s = input ( 'enter something-->' ) print ( len (s)) if len (s) < 3 : raise shortinputexception( len (s),atleast = 3 ) except (eoferror): print ( '\nwhy did you do an eof on me ?' ) except (shortinputexception) as x: print ('shortinputexception: the in input was of length % d,\ was expecting at least % d' % (x.length,x.atleast)) else : print ( 'no exception was raised.' ) |
运行结果
try...finally
假如在你读文件的时候发生了异常,但是无论如何文件都要关闭。这个时候该怎么做呢?
这里我们需要使用finally块来完成。
在使用try捕获异常的时候,我们可以同时使用except块和finally块。
|
import time try : f = open ( 'poem.txt' ) while true: # our usual file-reading idiom line = f.readline() if len (line) = = 0 : break time.sleep( 2 ) print (line) finally : f.close() print ( 'cleaning up...closed the file' ) |
运行结果
这里使用了time的sleep函数,里面的参数是它的运行间隔。
这样我们就有时间去使用ctrl+c使程序发生异常。这时候我们发现finally块中的语句还是运行的,文件正常关闭了。
简极(∞+∞=∞ ∞-∞=∞)
以上所述是小编给大家介绍的python异常详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:https://www.cnblogs.com/liuhappy/p/10668515.html
- python单例模式读取配置文件(Python下简易的单例模式详解)
- python变量与对象的关系(Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析)
- python用于机器人(python控制nao机器人身体动作实例详解)
- python3.x base64怎么加密解密(python3.x实现base64加密和解密)
- python list基本操作(Python3中列表list合并的四种方法)
- python图片识别文字代码(python批量识别图片指定区域文字内容)
- python使用aes加密解密(python实现AES加密与解密)
- python语法规则讲解(计算机二级python学习教程2 python语言基本语法元素)
- 基于pythonopencv的图片识别(Python Opencv实现图像轮廓识别功能)
- python 字典按key值排序(Python 按字典dict的键排序,并取出相应的键值放于list中的实例)
- python实现列表删除重复元素(Python代码实现删除一个list里面重复元素的方法)
- python的turtle库怎么进入(python的turtle库使用详解)
- python里list操作大全(Python列表List知识点总结)
- python redis锁的使用(Python操作redis实例小结String、Hash、List、Set等)
- python常用的字符串操作方法(Python字符串的常见操作实例小结)
- python3字符串格式化怎么操作(python3实现字符串操作的实例代码)
- 清华大学难考吗(清华大学考研录取分数线)
- 观花盆栽佛肚竹盆景制作及养护(观花盆栽佛肚竹盆景制作及养护)
- 春天养佛肚竹,做好这几件事,叶绿根壮寓意好 越养越旺家(春天养佛肚竹做好这几件事)
- 律界衣品最好,时尚圈学识数高,41岁的Amal堪称现实版的傲骨贤妻(时尚圈学识数高)
- 刘智泰确认出演《Good Wife》 担纲男一号(刘智泰确认出演Good)
- 《傲骨之战》剧终 律政女魔头Diane,为什么是大女主天花板(傲骨之战剧终律政女魔头Diane)
热门推荐
- dedecms调用logo标签(dedecms返回列表页功能的标签代码)
- python表白神器教程(python浪漫表白源码)
- mysql5.7.20非安装版教程(MySQL5.5 部署的一个问题)
- dedecms如何发表文章(dedecms实现调用所有顶级栏目下最新文章的方法)
- Dictionary转换为list
- sqlserver列数据拆分(SQL Server基础之行数据转换为列数据)
- mysql存储过程和函数(MySQL存储过程的查询命令介绍)
- 在sqlserver中如何看表格的类型(SQL Server 中的数据类型隐式转换问题)
- laravel使用教程(基于Laravel5.4版本的基本增删改查操作方法)
- mysql中如何设置多个主键(Mysql 增加主键或者修改主键的sql语句操作)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9