Python的异常处理及异常捕获

Python的异常处理种类及捕获方法

一、Python的异常处理

异常是程序执行过程中产生的非预期的结果,或者引发的错误。
有二种情况:
语法错误:编写程序时,由于违背了python的语法规则,书写上出现的问题,程序被迫终止执行,输出了有关的错误信息。
逻辑错误:程序顺利的通过了运行考验,并得出了结果,但他并不是编写程序时人们所设想的结果,这是“逻辑错误”。如果执行过程,不去捕获异常会导致发现不了错误。

二、Python中常见的语法异常名称

在这里插入图片描述

三、python的逻辑错误总结:

来源:例如if使用不当,python语法检查不出来,往程序里添加一条与程序原来功能无关的语句,以便检查到底哪里出问题了。
调试程序常用的办法,也是在程序里安排一些附加语句,以便在执行过程中,得到的中间结果和相关信息里,分析产生错误的原因及具体位置,以帮助程序设计人员进行分析、排除疑点,从而确定错误所在的范围。

具体常用场景异常插入方法:
1、输入数据时出现错误的可能原因,以及数据是否存放到了预定的变量里,可以在输入(如input0))语句之后,安排一条输出(如print())语句;
2、检查函数调用过程中参数传递是否正确,可以在调用某函数之前及刚进入被调函数时,分别安排输出语句,进行传递内容是否正确的核对工作;
3、了解循环嵌套结构中,当前处于第几重循环、是第几次进入循环体,可以在循环结构里,适当安排计数语句,统计出有用的数据信息;
4、了解条件判定和程序走向,可以在if语句等分支结构中,针对每个分支设置输出内容不同的语句以弄清楚程序执行时,到底走了哪一条路,有没有按照要求运行。

四、python逻辑错误的处理机制

Python逻辑问题导致的异常,处理机制:
1、try-except:捕捉程序代码中可能引发的错误。
2、try-else:有条件地处理程序中出现的异常。
3、try-finally:不管是否发生异常,最终都去执行清理操作。
4、多个except语句:不指定任何异常名,那么表示的是捕捉全部。

【 try-except语句的基本语法】
原理:为了捕捉到程序中的异常,编写程序时把可能产生异常的语句块放在try子句后面的语句块里,把捕捉到异常后需要做的处理事情放在except子句后面的语句块里。这样,若try后面的语句块运行时出错,就会去执行except后面的语句块;如果try后面的数据块执行没有错误那么就会跳过except后面的语句块。
其语法格式为:
try:
block1正常逻辑
except[<异常类名>[as<别名>]]:
block2触发自定义异常
备注:
1、其中,:有可能出现错误的语句块,
2、<异常类名>:指定要捕捉的异常类名称
3、as<别名>:为当前的异常起一个“别名”,通过它可以记录该异常的简要内容。
4、:出现异常后要进行的处理,例如可以输出提示信息,通过别名输出该异常简要的内容。
5、再except后如果没有指定异常名(方括号),那么捕获全部异常。

【try-except-else语句】
try-except-else也是一种捕捉异常的Python语句,
其语法格式为:
try :
block1正常逻辑
except[<异常类名>[as<别名>]]
block2触发自定义异常
else:
block3其余代码
备注:
1、:可能出现错误的语句块。
2、<异常类名>:指定要捕捉的异常类名称(见表8-1)。
3、as<别名>:为当前的异常起一个“别名”,通过它可以记录该异常的简要内容。
4、:出现异常后要进行的处理,例如可以输出提示信息,通过别名输出该异常简要的内容。
5、:当try块中没有发现异常时执行该语句块,发现异常时则不执行该语句块。

【try-except-finally语句】
完整的异常处理,不仅应该包括try、except、else等子句,还应该包括finally子句。它的作用是无论程序中有无异常发生,finally子句后面跟随的语句块都会被执行。通常,finally子句大都用来做一些清理工作,例如收回try子句中申请的资源、保证文件的正常关闭等。这时完整的语法格式是:
try:
block1正常代码
except[<异常类名>[as<别名>]]:
如果有异常执行这块代码block2
else:
如果没有异常执行这块代码block3
finally:
退出try时总会执行block4

【多个except语句】
except后面不指定异常名,那么表示的是捕捉全部,except子句后面如果直接跟随冒号,异常。这种做法就可以达到避免出错信息出现的目的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值