




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Python异常处理(基本)蟒蛇壳打开(abc.txt,r)回溯(最近一次通话):文件“”,第1行,在中没有这样的文件或目录打开一个不存在的文件,当系统找不到该文件时,会抛出一个错误类型错误,没有这样的文件或目录。TXT)尝试.反对.如果我们已经知道这种类型的错误,我们可以通过一个异常来抓住它。我们可以通过尝试来接收这个错误.除了。打开文件写入:try:open(abc.txt ,r)除了IOError:及格如果您再次运行该程序,您将看不到任何错误,因为我们收到了此IOError错误,但有例外。Pass意味着已经实现了相应的实现,但是什么也没有做。如果我输出一个未定义的变量而不是打开一个文件会
2、怎么样?try:打印aa除了IOError:及格显然,我没有在上面的代码中指定aa。结果是:回溯(最近一次通话):文件/home/fnng j/py _ se/try . py ,第3行,in打印aa名称错误:名称aa未定义除了我们收到的错误,为什么错误仍然被抛出?如果你仔细的话,你会发现这次的错误类型是命名错误,而我的接收类型是命名错误,所以要接收这个打印错误,你需要修改接收错误类型为命名错误。虽然我知道打印语句可能会抛出一个类型为NameError的错误,尽管我收到了这种类型的错误,但我不知道具体的错误提示消息是什么。那么,我可以打印出错误信息吗?当然:try:打印aa除了NameErro
3、r,msg:打印消息收到错误类型后,我们定义一个变量msg来接收特定的错误信息,然后打印msg接收到的错误信息。要再次运行程序:名称aa未定义现在只打印了一行特定的错误信息。异常抛出机制:1.如果运行时出现异常,解释器将查找相应的处理语句(称为处理程序)。2.如果在当前函数中找不到它,它会将异常传递给上层的调用函数,看看是否可以在那里处理。3.如果在最外层(全局“main”)仍然找不到它,解释器将退出并打印回溯,以便用户可以找到错误的原因。注意:虽然大多数错误都会导致异常,但异常不一定代表错误。有时它们只是一个警告,有时它们可能是一个终止信号,例如退出一个循环。尝试.最后.尝试.最后.子句用于
4、表达以下情况:我们不希望管道捕获任何错误。无论错误是否发生,这些代码“必须”运行,如关闭文件、释放锁、将数据库连接返回到连接池等。Txttryf.py复制代码导入时间try:f=文件(poem.txt)而我们通常的文件阅读习惯用法line=f.readline()if len(line)=0:破裂时间.睡眠(2)打印行,最终:关闭()打印清理.关闭文件复制代码运行程序(在windows命令提示符或linux终端上运行):复制代码.$ python tryf.py字母表限边馈膜生长CCleaning起床了.关闭文件回溯(最近一次通话):文件“tryy.py”,第18行,in时间.睡眠(2)键盘中
5、断复制代码该程序读取要打印的poem.txt文件中的每一行数据,但我打算在打印每一行数据之前用time.sleep方法暂停2秒钟。这样做的原因是让程序运行得更慢。程序运行时,按Ctrl-c可中断/取消程序。我们可以观察到键盘中断异常被触发,程序退出。但是在程序退出之前,finally子句仍然被执行,关闭文件。到目前为止,我们只讨论了如何捕捉异常,那么如何抛出异常呢?加注抛出了一个异常使用提升引发异常:tryr.py#coding=utf-8filename=raw_input(请输入文件名:)如果文件名=hello:引发名称错误(输入文件名错误!)该程序要求用户输入文件名。如果用户输入的文件名
6、是hello,将抛出一个名为NameError的异常。用户输入的hello和NameError异常之间没有必要的连接。我只是通过加注来人为地定义它。当然,我也可以定义类型错误,但是我定义的异常类型必须由python提供。附录:常见python异常类型自从几年前学习编程以来,我一直害怕和排斥程序中的异常处理。这是因为我不明白。在这次对python的攻击中,我首先列出了最令人恐惧和最不熟悉的内容,包括“异常处理”。Dive into Python没有专门介绍异常处理,但在示例中使用时,它只是稍微解释了一下。立即下载Learn Python,直接转到异常处理。这一部分有四章。第一章解释了异常处理的一
7、般用法,接下来的章节深入讨论了它的机制。目前,我只读过第一章。我将首先学会使用它,然后在必要时扩展我的阅读。Python主要支持五种异常机制,一个接一个。默认异常处理程序复制代码如下:你好,女孩!打印s100打印继续如果我们不对异常采取任何预防措施,如果在程序执行期间发生异常,程序将被中断,python的默认异常处理程序将被调用,异常信息将在终端输出。在这种情况下,第三行代码将不执行。尝试除了复制代码如下:你好,女孩!try:打印s100除了索引错误:打印错误.打印继续当程序执行到第二句时,它会找到一条try语句,进入try语句块执行,当出现异常时,它会返回try语句层,以确定后面是否有异常语
8、句。当发现异常语句时,将调用此自定义异常处理程序。在异常处理后,程序继续执行。在这种情况下,执行最后两个打印语句。异常之后也可以是空的,表示捕捉到了任何类型的异常。尝试终于复制代码如下:你好,女孩!try:打印s100最终:打印错误.打印继续finally语句表示无论异常是否发生,finally中的语句都将被执行。然而,由于没有除处理器之外的处理器,程序在最终执行后将被中断。在这种情况下,将执行第二次打印而不是第一次打印。如果try语句中没有异常,则执行所有三次打印。维护复制代码如下:断言错误,错误.打印继续该语句首先判断紧接着断言的语句是真还是假,如果是真,将继续执行打印,如果是假,将中断程
9、序,调用默认异常处理程序,同时在断言语句的逗号后输出提示信息。在这种情况下,程序被中断,提示错误,并且不执行以下打印。用as复制代码如下:open(nothing.txt,r) as f:f .阅读()打印2/0打印继续当我们使用像文件这样的流对象时,调用close方法来关闭它们是非常麻烦的。与.一起.这里的as语句提供了一个非常方便的选择:open打开文件,将返回的文件流对象赋给f,然后在with语句块中使用它。with语句块完成后,文件将自动关闭并隐藏。如果在with语句或语句块中出现异常,将调用默认异常处理程序进行处理,但文件仍将正常关闭。在这种情况下,会引发异常,并且不会执行最终打印。
10、这本书非常详细,除了我上面提到的,还有许多有用的附加信息,比如试一试.例外.最后.否则可以一起使用,例如自定义异常类。此处未列出,请参考本书的介绍了解详情。如何完全捕捉python异常标签:pythonexceptionimportfilec2012-04-04 13:38 19728人阅读评论(1)收集报告分类:巨蟒(11)版权声明:本文是博客作者的原创文章,未经博客作者许可,不得转载。如果您想在编写程序时遇到异常后执行以下操作,请参考下面我写的异常处理方法:让我们假设有一个过程如下:try:报表1报表2。语句n反对.打印.然而,您不知道当“语句1到n”被执行时会发生什么样的异常,但是您仍然
11、需要处理异常,并且您想要在不停止程序的情况下打印出异常。那么“除了之外”这句话应该怎么说呢被书写?至少3种方法:方法1:捕捉所有异常python查看平面打印?try:a=bb=c例外,ex:打印异常, : ,例如方法2:使用回溯模块检查异常。python查看平面打印?导入追溯try:a=bb=c除外:traceback.print_exc()方法3:使用sys模块追溯最后一个异常python查看平面打印?导入系统try:a=bb=c除外:info=sys.exc_info()打印信息0, : ,信息1但是,如果您仍然希望将这些异常保存到日志文件中以分析这些异常,请查看以下方法:通过回溯将打印在
12、屏幕上的信息保存到文本文件中python查看平面打印?try:a=bb=c除外:f=打开( c:log.txt ,a)traceback.print_exc(文件=f)f.flush()关闭()python中的异常例外是指程序中的例外和违反。异常机制是指程序出错后的处理方法。当发生错误时,程序的执行流程会发生变化,程序的控制权会转移到异常处理上。异常类是一个常见的异常类,包括标准错误、停止迭代、生成退出、警告和其他异常类。StandardError类是python中的一个错误异常,如果程序中存在逻辑错误,就会引发该异常。StandardError类是所有内向异常的基类,并被放置在默认的命名空间中,因此使用了IOEroor。EOFErro
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 百货商场数字化顾客关系管理策略与体验优化报告
- 2023-2024学年贵州省贵阳市九年级上学期物理期末试题及答案
- 全国b证安全考试题及答案2015
- 述职报告题目及答案
- 数据结构面试题及答案
- 数学滑雪题目及答案
- 四川建筑安全b证考试试题及答案
- 陶渊明传题目及答案
- 体育题目及答案2017
- 具体社团管理办法
- 2025年医院感染管理办法试题与答案
- 小型农场基础规划方案(3篇)
- 2024年北京大兴区招聘社区工作者真题
- 角膜内皮失代偿个案护理
- 数据库发展研究报告(2025年)
- 2025至2030中国风力发电行业深度分析及发展前景与发展战略报告
- 2025中国消防救援政府专职消防员招聘笔试备考试题及答案解析
- 销售管理部部门管理办法
- 劳动教育实践课程体系构建与实施
- 传染性单核细胞增多症病例分享
- 物业客户报修管理办法
评论
0/150
提交评论