python常规异常的基类_【Python学习笔记】异常处理

在程序运行过程中,经常会遇到各种各样的错误,这些错误统称为异常。这些异常有的是由于开发者一时疏忽将关键字敲错导致的,这类错误多数产生的是“SyntaxError:invalid syntax”(无效语法),这将直接导致程序不能运行,这类异常是显示的,在开发阶段很容易发现。还有一类是隐式的,通常和使用者的操作有关。

Python中常见异常类名描述

BaseException所有异常的基类

Exception常规异常的基类

AttributeError对象不存在此属性

IndexError序列中无此索引

IOError输入/输出操作失败

KeyboardInterrupt用户中断执行

KeyError映射中不存在此键

NameError找不到名字(变量)

SyntaxErrorPython语法错误

TypeError对类型无效的操作

ValueError传入无效的参数

ZeroDivisionError除(或取模)运算的第二个参数为0

ConnectionError与连接相关异常的基类

异常处理语句

在程序开发时,有些错误并不是每次运行都会出现,如果需要在开发程序时对可能出现异常的情况进行处理。

try……except语句

在Python中 ,提供了try……except语句捕获并处理异常,在使用时,把可能产生异常的代码放在try语句块中,把处理结果放在except语句块中,这样,当try语句块中的代码出现错误,就会执行except语句块中的代码,如果try语句块中的代码没有错误,那么except不会执行。

语法try:

block1

except [ExceptionName [as alias]]

block2

except [ExceptionName [as alias]]

block3

参数说明:

block1:表示可能出现错误的代码块

ExceptionName [as alias]:可选参数,用于指定要捕获的异常,如果需要捕获多个异常,后面跟多个异常名,用“,”分隔。其中, ExceptionName表示要不会异常的名称,如果在其右侧加上“as alias”,则表示为当前异常赋值给alias,通过该别名,可以记录异常的具体内容。

在使用try……except语句捕获异常时,如果在except后面不指定异常名称,则表示捕获全部异常。

block2:表示进行异常处理的代码块。在这里可以输出固定的提示信息,也可以通过别名输出异常具体内容。

使用try……except语句捕获异常后,当程序出错时,输出错误信息后,程序会继续执行。

try……except……else语句

在Python中,还有另一种异常处理结构,它是try……except……else语句,也就是在原来try……except语句基础上再添加一个else子句,用于指定当try语句块中没有发现异常时要执行的语句块。该语句块中的内容在try语句中发现异常时,将不被执行。

try……expect……finally语句

完整的异常处理语句应该包括finally代码块,通常情况下,无论程序中有无异常产生,finally代码块中的代码都会被执行。

语法:try:

block1

except [ExceptinName [as alias]]

block2

finally:

block3

对于try……except……finally语句的理解并不复杂,它只是比try……expect语句多了个finally代码块,如果程序中有一些在任何情形中都必须执行的代码,那么就可以将他们放在finally语句的区块中。

使用except子句是为了允许处理异常。无论是否引发异常,使用finally子句都可以执行,如果分配了有限的资源(如打开文件),则应将释放这些资源的代码放置在finally块中。

使用raise语句抛出异常

如果某个函数或方法可能会产生异常,但不想在当前函数或方法中处理这个异常,则可以使用raise语句在函数或方法中抛出异常。

语法raise [ExceptionName [(reason)]]

[ExceptionName [(reason)]]:为可选参数,用于指定抛出异常的名称,以及异常信息的相关描述。如果省略,就会把当前的错误原样抛出。

[ExceptionName [(reason)]]参数中的(reason)也可省略,如果省略,则在抛出异常时,不附带任何描述信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值