首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python 入门第十七讲】异常处理

本文中,我们将讨论如何在适当的示例的帮助下使用 try、except 和 finally 语句处理 Python 的异常。Python 的错误可以分为两种类型,语法错误和异常。...ValueError:当使用无效的参数或输入调用函数或方法,例如,当字符串不表示有效整数,尝试将字符串转换为整数,则会引发此异常。...ImportError:当 import 语句无法找到或加载模块,将引发此异常。这些只是 Python 可能发生的多种异常类型的几个示例。...x = 5y = "hello"z = x + y输出:尝试 catch 块来解决它:代码尝试将整数 (x) 和字符串 (y) 相加,这不是有效的操作,它将引发 x y TypeError 。...第二个 print 语句尝试访问列表不存在的第四个元素,这会引发异常,然后except 语句捕获此异常。捕获特定异常try 语句可以有多个 except 子句,用于指定不同异常的处理程序

28211

Python教程(19)——python异常处理

异常处理方式 Python的异常处理机制允许我们代码捕获和处理可能出现的异常情况,以保证程序的稳定性和可靠性。Python,异常处理是通过使用try-except语句块来实现的。...try-except语句 使用try-except语句来捕获并处理异常。try块中放置可能引发异常的代码,except定义了对异常的处理逻辑。...try: # 可能引发异常的代码 except ExceptionType: # 处理异常的逻辑 可以try-except语句中添加一个可选的else语句块,用于处理try块没有引发异常需要执行的代码...、字符串等类型索引超出范围 KeyError 键错误,通常是尝试访问字典不存在的键引发的 AttributeError 属性错误,通常是尝试访问对象不存在的属性引发的 FileNotFoundError...AssertionError 断言错误,通常是调用assert语句条件为False引发的 ImportError 导入错误,通常是导入模块或包出现问题引发的 OverflowError 溢出错误

15210
您找到你想要的搜索结果了吗?
是的
没有找到

python 关键字「建议收藏」

del 删除变量 列表本身包含的是变量,例: 所以 3.from from引用模块时会用到,例: 4.golbal golbal为全局变量,但当单个函数中出现同一变量名单个函数为局部变量...,将调用前面返回对象的exit()方法 实际上,with后面的代码块抛出任何异常,exit()方法被执行。...try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常又引发新的异常)。...如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。...raise 触发异常后,后面的代码就不会再执行 die函数,打印错误信息 13.exec–eval–execfile exec 用来执行储存在字符串或文件的Python语句 exec是一条语句字符串

86510

文件和文件异常

将要读取的文件的名称存储变量filename。由于变量filename表示的并非实际文件,它只是一个让Python知道到哪里去查找文件的字符串。...打印这个字符串以及长度。 ? 输出: ? 变量pi_string存储的字符串,包含原来位于每行左边的空格,为删除这些空格,可使用strip()不是rstrip()。 ? 输出: ?...通过将输出写入文件,即便关闭包含程序输出的终端窗口,这些输出也依然存在:可以程序结束运行后查看这些输出,可与别人分享输出文件,还可编写程序来将这些输出读取到内存并进行处理。...使用了try-except代码块,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,不是令用户迷惑的traceback。 1.处理ZeroDivisionError异常 ?...except代码块告诉Python,出现ZeroDivisonError异常怎么办。如果try代码块因除0错误失败,就打印1条友好消息,告诉用户如何避免这种错误,程序继续运行。

5.2K20

Python 自动化指南(繁琐工作自动化)第二版:三、函数

第一行是一个def语句 ➊,它定义了一个名为hello()的函数。跟在def语句 ➋ 后面的代码是函数体。这段代码函数被调用时执行,不是函数第一次被定义执行。...程序执行进入函数,参数name自动设置为'Alice',这是由print()语句打印出来的。 关于参数需要特别注意的一点是,当函数返回,存储参数的值会被遗忘。...当这个程序启动,Python 首先导入random模块 ➊。然后定义getAnswer()函数 ➋。因为函数正在被定义(不是被调用),所以执行会跳过其中的代码。...请注意,帧对象总是从栈顶部添加和移除,不是从任何其他位置。图 3-2 展示了abcdCallStack.py调用栈每个函数被调用并返回的状态。...Python 之所以有不同的作用域,不是把所有东西都变成全局变量,是因为当代码在对函数的特定调用修改变量,函数只能通过它的参数和返回值与程序的其余部分进行交互。这缩小了可能导致错误的代码行数。

93220

Python-异常处理与调试

一.错误 1.有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为 bug,bug 是必须修复的。...3.还有一类错误是完全无法程序运行过程预测的,比如写入文件的时候,磁盘满了,写不进去了,这类错误也称为异常,程序通常是必须处理的,否则,程序会因为各种问题终止并退出。  ...事实上,每个异常都是一些类的实例,这些实例可以被引发,并且可以用很多方法进行捕捉,使得程序可以捕捉错误并且对其进行处理,不是让 整个程序失效。...二.错误处理 1.程序运行的过程,如果发生了错误,可以事先约定返回一个错误代码; 2.Python语言通常都内置了一套 try...except...finally......不捕获错误,Python 解释器会打印出错误信息,但程序也被结束; 3. 捕获错误,就可以把错误信息打印出来,然后分析错误原因,同时,让程序继续执行下去。 4.

69910

Python3 错误和异常

通过异常处理,我们可以对用户程序的非法输入进行控制和提示,以防程序崩溃。...各种编程语言处理异常方面具有非常显著的不同点(错误检测与异常处理区别在于:错误检测是正常的程序,处理不可预见问题的代码,例如一个调用操作未能成功结束)。...python我们可以通过try-except语句来捕捉异常,语法错误的话开发工具都会有提示的。...try语句按照如下方式工作; 首先,执行try子句(关键字try和关键字except之间的语句) 如果没有异常发生,会忽略except子句,try子句执行后就结束。...使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免一些意想不到的、except又没有捕获的异常。

91010

Python入门教程:掌握for循环、while循环、字符串操作、文件读写与异常处理等基础知识

除了常规使用外,for 循环还可以和 break 和 continue 语句一起使用。break 语句用于结束整个循环, continue 语句用于跳过本次循环。...当循环到 “orange” ,使用 break 语句结束循环;当循环到 “banana” ,使用 continue 语句跳过本次循环。... except 语句中,我们使用 as 关键字来给异常命名为 e,并打印错误信息。 except,还可以使用 else 语句处理未发生异常的情况。...因此,程序会执行 else 块的代码,打印计算结果。 除了使用 except 处理特定的异常类型外,还可以使用 except Exception 来处理所有类型的异常。...函数体,我们打印出这些参数的值。程序的主体部分,我们调用该函数,传递了一组位置参数和关键字参数。 Python ,还可以使用 lambda 表达式来定义匿名函数。

25410

python基础——异常捕获【try-except、else、finally】

通过异常捕获,程序可以在出现错误时继续运行,不是立即终止。 2,如何进行异常捕获? Python,可以使用try-except语句来进行异常捕获。...其中,try块包含程序尝试执行的代码,except块包含当特定的异常发生执行的代码。 当在try块的代码发生异常程序会立即跳到紧跟着的except块,并执行该块的代码。...运行结果: 可见:ValueError异常被捕获了,并打印"输入的内容不是一个有效的整数。"。...(3)else和finally语句 这两条语句是可选的,try-except是必选的 else块是:异常没有发生,执行的代码 finally是:无论是否发生异常都要执行的代码 以下是一个使用这些语句的简单示例...输出结果: 在上述示例,由于字符串不能转换为整数,所以触发了ValueError异常。因此,except的代码被执行,else块的代码则不会执行。

19910

Python自动化开发学习7

这里删除属性一般如果就是要删除这个属性,那么就在方法里写一个del。不过这里我们想让他做点别的不是删除,那么也是可以的。不过既然占用了删除属性的方法,那么就没办法主动删除这个属性喽。...这里用字符串不是注释的意义就在于,通过__doc__是可以获取到的 def test(): "TEST" pass class Person(object): '''描述人类的信息...__metaclass__ 属性是python2的讲法,python3已经变成了metaclass,已经不是一个属性了,但是作用没变。...module = __import__('time') print(module) print(module.asctime()) 异常处理 在编程过程为了增加友好性,程序出现bug一般不会将错误信息显示给用户...as e: print("这是我的异常:",e) print("结束") 自定义的异常,应该只是逻辑上有错误,影响你程序的正常运行但是不影响python代码的执行。

87020

小朋友学Python(19):异常

当Python脚本发生异常我们需要捕获处理它,否则程序会终止执行。 二、异常处理 捕捉异常可以使用try…except语句。...try…except语句用来检测try语句的错误,从而让except语句捕获异常信息并处理。 如果你不想在异常发生结束你的程序,只需try里捕获它。...如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。...但这不是一个很好的方式,我们不能通过该程序识别出具体的异常信息。因为它捕获所有的异常。...,0) 从运行结果可以看出,raise抛出异常后,except和else语句都没有被打印出来,但是finally语句打印出来了。

57790

Python 异常处理与反射机制

、打开不存在的文件、空引用异常等,当异常被引发,如果没有代码处理该异常,异常将被 Python 接收处理,当异常发生 Python 解释器将输出一些相关的信息井终止程序的运行,以确保程序不会出现终止执行的情况...,也可以捕捉各种子类异常,Python中使用try...except语句捕捉异常,异常类型定义try子句的后面,如果在except子句后面将异常类型设置为Exception,那么异常处理程序将捕获除了中断外的所有异常...当然了try..except语句还可以添加一个else子句,当try子句中的代码发生异常,程序直接跳转到except子句里去执行,反之程序将执行else语句的内容,如下示范,执行除法运算当除数为0,...,只是调用的时候也会遵循相应的调用原则,以下语句如果外层try子句中的代码块引发异常,程序将直接跳转到外层try对应的except子句,内部的try子句将不会被执行. import os import...反射机制:反射就是通过字符串的形式,导入模块.通过字符串的形式,去模块寻找指定函数,对其进行操作,也就是利用字符串的形式去对象(模块)操作成员,一种基于字符串的事件驱动,这种机制就叫做反射机制.

50820

python之异常处理

调试Python程序时,经常会报出一些异常,不管我们是启动程序,或者调用接口,总不是100%的成功,异常的原因一方面可能是写程序时由于疏忽或者考虑不全造成了错误,这时就需要根据异常Traceback到出错点...如果第一个except定义的异常与引发的异常匹配,则执行该except语句。 如果引发的异常不匹配第一个except,则会搜索第二个except,允许编写的except数量没有限制。...使用traceback.print_exc()打印异常信息到标准错误,就像没有获取一样,或者使用traceback.format_exc()将同样的输出获取为字符串。...区别就是,format_exc()返回字符串,print_exc()则直接给打印出来。...# 当input()函数没有读取任何数据的情况下达到文件结束条件(EOF)引发 +-- ImportError # 导入模块/对象失败 | +-- ModuleNotFoundError

70130

Python运行环境与异常处理

选项 描述 -J 启动将从Python3删除或更改某些功能的警告 -B 阻止导入时创建.pyc或.pyo文件 -E 忽略环境变量 -h 打印所有可用命令行选项的列表 -i 程序执行后进入交互模式...-m module 以脚本的形式运行库模块module -O 优化模式 -OO 优化模式,创建.pyo文件删除文档字符串 -Q arg 指定Pyhthon2除法运算符的行为,值为-Qold (默认...打印版本信息 -x 跳过源程序的第一行 -c cmd 以字符串形式执行cmd 2、doctest代码测试模块   Doctest模块允许文档字符串内嵌入注释以显示各种语句的期望行为,尤其是函数和方法的结构...这种处理方式的主要作用有: 错误处理:默认处理,停止程序打印错误信息;使用try语句处理异常并恢复事件通知:用于发出有效状态信息特殊情况处理:无法调整代码去处理的现场终止行为:try/finally语句可确保执行必须的结束处理机制非常规控制流程...语句:   except分句个数没有限制,但else只能有一个;没有异常发生,else分句才会执行;没有符合的except分句,异常会向上传递到程序的之前进入的try或者道程序的顶层。

1.3K10

第三章1:用户输入和条件判断

注意 程序将输入的信息处理为字符串 存储用户输入 在前一个单元格,我们简单的打印了用户输入的input数据。...这是为了确保你的程序不会因为出现一个错误停止运行。这是一个常用的处理报错的方法;也有很多其他的方法如有isalpha()功能和isalnum()功能。...#当错误出现时如果没有try/except 打印语句不会被命中 print("The program did not break!") 单元格运行如上代码,尝试输入不同的答案包括没有数字。...你会注意到当你输入的不是数字,会输出我们的无效打印语句。如果我们代码里没有try和except,这个程序会失灵,并且最后一个打印语句不会出现。...代码块和缩进 大多数程序语言中,缩排仅仅用于帮助美化代码。Python,它用来标示一段代码。

95920

Python新手学习raise用法

由于与业务需求不符产生的异常,必须由程序员来决定引发,系统无法引发这种异常。 如果需要在程序自行引发异常,则应使用 raise 语句。...所以引发异常,应该选择合适的异常类,从而可以明确地描述该异常情况。在这种情形下,应用程序常常需要引发自定义异常。...为了实现这种通过多个方法协作处理同一个异常的情形,可以 except结合 raise 语句来完成。...不需要参数 正如前面所看到的,使用 raise 语句可以不带参数,此时 raise 语句处于 except,它将会自动引发当前上下文激活的异常;否则,通常默认引发 RuntimeError...块只是简单地使用 raise 语句来引发异常,那么该 raise 语句将会再次引发该 except 块所捕获的异常。

5.7K30

Python 异常处理总结

try/except语句用来检测try语句的错误,从而让except语句捕获异常信息并处理。如果你不想在异常发生结束你的程序,只需try里捕获它。...如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。...使用except不带任何异常类型 你可以不带任何异常类型使用except,如下实例: ? 以上方式try-except语句捕获所有发生的异常。...但这不是一个很好的方式,我们不能通过该程序识别出具体的异常信息。因为它捕获所有的异常。 使用except而带多种异常类型 你也可以使用相同的except语句来处理多个异常信息,如下所示: ?...你可以通过except语句来捕获异常的参数,如下所示: ? 变量接收的异常值通常包含在异常的语句中。元组的表单变量可以接收一个或者多个值。 元组通常包含错误字符串,错误数字,错误位置。

1.1K60

Python 6.1 错误处理

错误处理 程序运行过程,如 果发生了错误,可以事先约定返回一个错误代码,这样,就知道是否有错以及出错原因。操作系统提供的调用,返回错误代码非常常见。...此外,如果没有错误发生,可以except后面加上一个else,当没有错误发生,会自动执行else语句: try:     print('try...')    ...记录错误 如果不捕获错误,自然可以让Python解释器打印出错误的堆栈,但程序也就结束了。既然我们能捕获错误,我们就能将错误堆栈打印出来,然后分析错误原因,同时,让程序继续运行下去。...raise bar()函数,我们明明已经捕获到错误,但是打印一个ValueError后,又把reise语句跑出去这不是有病?...raise如果不带参数,就会把当前错误原样抛出,此外,exceptraise一个Error,还可以把一种类型的错误转换成另外一种。

53310

异常--python异常处理

InterfaceError 当有数据库接口模块本身的错误(不是数据库的错误)发生触发。 必须是Error的子类。 DatabaseError 和数据库有关的错误发生触发。...try/except语句用来检测try语句的错误,从而让except语句捕获异常信息并处理。 如果你不想在异常发生结束你的程序,只需try里捕获它。...如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。...变量接收的异常值通常包含在异常的语句中。元组的表单变量可以接收一个或者多个值。 元组通常包含错误字符串,错误数字,错误位置。 实例 以下为单个异常的实例: #!...try语句,用户自定义的异常后执行except语句,变量 e 是用于创建Networkerror类的实例。

2.8K20

Python 异常处理

try/except语句用来检测try语句的错误,从而让except语句捕获异常信息并处理。 如果你不想在异常发生结束你的程序,只需try里捕获它。...如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。...以上方式try-except语句捕获所有发生的异常。但这不是一个很好的方式,我们不能通过该程序识别出具体的异常信息。因为它捕获所有的异常。...元组的表单变量可以接收一个或者多个值。 元组通常包含错误字符串,错误数字,错误位置。 实例 以下为单个异常的实例: #!...try语句,用户自定义的异常后执行except语句,变量 e 是用于创建Networkerror类的实例。

52040
领券