我们已经准备好了,你呢?

2026我们与您携手共赢,为您的企业形象保驾护航!

其异常处理功能十分卓越,能够向用户精确地报告错误信息。在系统内部,异常被视为一种对象,用户可以对其实施操作。所有异常均为基类的一部分。它们均源自基类,并在各自的模块内进行了定义。系统会自动将所有异常的名称纳入内置命名空间,因此,程序无需额外导入模块即可利用异常。通过异常对象(括号内内容)来表征异常状况,一旦出现错误,便会触发异常。若异常情况未得到妥善处理或捕获,程序将执行所谓的回溯操作,这会以错误信息的形式导致执行终止。

留意到:尽管多数失误可能引发异常情况,但异常的出现并不必然意味着存在错误。有时,它们仅仅是一种提醒,甚至可能是终止某些操作,如退出循环等信号的标志。

一.与异常相关的关键字

raise:手动抛出/引发异常:raise

try/:捕获异常并处理

pass:忽略异常

as:定义异常实例( as e)

:无论是否出现异常,都执行的代码

若在try语句块内未出现任何异常,则将执行else语句块中的内容。

as error:

二.中的异常类型

若程序中存在逻辑上的瑕疵,便可能触发此类异常。此类为所有内敛异常的根基,被置于默认的命名空间之中,故在使用诸如类、类等时,无需额外导入任何模块。

类:判断循环是否执行到尾部,如果循环到尾部,则抛出该异常。

类:是由函数引发的异常,当调用close()时引发该异常。

类:表示程序中的代码引起的警告。

三.基本方式:

1.try:

语句1

(,...),

语句2

else:

语句3

该种异常处理语法的规则是:

在执行try块中的代码时,一旦出现异常情况,程序流程将直接跳转至该块中的第一个后续语句执行。

若第一个定义的异常类型与所抛出的异常相吻合,那么将执行该异常处理块内的语句。

若遇到的异常与首个不匹配,系统将转向寻找第二个,且对编写数量并无上限规定。

若所有条件均不吻合,那么异常信息将被传递至调用本代码的最高层,并进入相应的try代码块进行处理。

·   如果没有发生异常,则执行else块代码。

import traceback
try:
  1/0
except Exception as err:
  print(err)
try:
  f = open("file.txt","r")
except IOError as e:
  print(e)
try:
  f = open("file.txt","r")
except Exception as e:
  print(e)

最终两个输出的结果完全相同。

2.try:

语句1

语句2

该语句的执行规则是:

·   执行try下的代码。

一旦出现异常情况,当这一异常信息传递至下一级try块时,正在运行的代码将受到影响。

·   如果没有发生异常,则执行中的代码。

在无论异常是否出现的情况下,第二种try语法显得尤为实用。比如,在编程时我们常需打开文件进行读写,不论操作中是否遭遇异常,最终目的都是确保文件被妥善关闭。这两种语法形式存在冲突,一旦选择了其中一种,便不能同时使用另一种,尽管它们各自具备不同的功能。

通常情况下,所进行的操作主要是进行清理,例如:关闭文件描述符、解除锁的占用等。

留意,一旦在程序运行过程中发生异常,若外部未设置相应的异常处理机制,异常信息将逐层向上传递,直至达到程序的最高层。此时,解释器将终止运行。通常,我们会在外层再设置一层try-catch语句来捕获异常。

三.手动使用raise引发异常

1.raise

要触发异常,最直接的方法是在代码中输入“raise”关键字,随后跟上希望触发的异常类型名称。该名称指明了具体的异常类别:异常即是这些类别的实例。当执行到“raise”指令时,系统会生成指定异常类的一个实例。此外,“raise”语句还可以用来指定对异常实例进行初始化的参数。因此,需在异常类型名称之后附加一个逗号,并跟随后面的指定参数(或者由这些参数组成的一个元组)。

3.实例:

try:
  print("开始测试")
  raise IOError
except IOError:
  print("定义好的错误")
except:
  print("别的错误")

二维码
扫一扫在手机端查看

本文链接:https://by928.com/10540.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线