python 异常捕获,python 异常类型
仅用于研究参考。
目标的概念捕捉异常,异常的交付抛出异常01。异常的概念程序在运行时,如果Python解释器遇到错误,就会停止程序的执行,并提示一些错误信息。这是异常程序停止执行并提示错误消息的操作。我们通常称之为:引发异常。
开发程序时,很难处理所有的特殊情况。通过异常捕捉,我们可以集中处理紧急情况,从而确保程序的稳定性和健壮性。
02.捕捉异常2.1捕捉异常的简单语法。在程序开发中,如果某些代码的执行不确定是否正确,可以添加try来捕捉异常。捕捉异常的最简单的语法格式是:
试图执行的代码
除了:
如果有错误,尝试处理它。在下面写下你想尝试的代码,你不确定是否能正常执行除非不能,写下失败的代码。简单异常捕捉钻——胖老板:告诉我你想在[2]买多少烟:试试:
.price=int(input(‘胖老板:你要买多少烟?’))
.除了:
.打印(“请输入正确的数字”)
.
老板:你要买多少烟?12.
在[4]中:尝试:
.price=int(input(‘胖老板:你要买多少烟?’))
.除了:
.打印(“请输入正确的数字”)
.
胖子:你要买多少烟?悲哀的
请输入正确的数字2.2错误类型捕捉程序执行时,可能会遇到不同类型的异常,需要对不同类型的异常做出不同的应对。这时,你需要捕捉错误类型。语法如下:try:
#您尝试执行的代码
及格
错误类型1除外:
#对于错误类型1,相应的代码处理
及格
除了(错误类型2,错误类型3):
#对于错误类型2和3,相应的代码处理
及格
例外结果除外:
Print(未知错误% s % result)Python解释器抛出异常时,错误消息最后一行的第一个字是[5]中的错误类型:price=int(input(胖老板:你想买多少烟?’))
胖子:你要买多少烟?个性签名
-
name trace back(最近一次调用last)显示错误类型为NameError。
类型捕捉练习3354胖老板:烟钱能给我个整数吗?要求
提示输入整数以检查[6]中的NameError是否异常:请尝试:
.price=int(input(‘胖老板:你要买多少烟?’))
.除了名称错误:
.打印(“NameError异常”)
.
老板:你要买多少烟?asdsa
NameError异常
In [7]:捕捉未知错误。在开发时,仍然很难预测所有可能的错误。如果希望程序因为Python解释器抛出异常而终止,可以添加另一个except语法,如下所示:except Exception as result:
Print(未知错误%s% result)2.3异常捕获的完整语法——胖老板要烟钱最后一个完整的异常版本在实际开发中,为了能够处理复杂的异常情况,完整的异常语法如下:
提示:
完整语法的应用场景会在后续的学习中结合实际案例更好的理解。现在,你可以先对这个语法结构有个印象。
尝试:
#您尝试执行的代码
及格
错误类型1除外:
#对于错误类型1,相应的代码处理
及格
错误类型2除外:
#对于错误类型2,相应的代码处理
及格
除了(错误类型3,错误类型4):
#对于错误类型3和4,相应的代码处理
及格
例外结果除外:
#打印错误消息
打印(结果)
否则:
#将无例外执行的代码
及格
最后:
#无论是否存在异常都将执行的代码
Print(无论是否有异常都将执行的代码)else代码,只有在没有异常时才会执行。最后,不管有没有异常都要执行的代码。再写一个胖老板问价。捕捉异常的完整代码如下:在[9]中:try:
.price=int(input(‘胖老板:你要买多少烟?’))
.除了名称错误:
.打印(“NameError异常”)
.结果异常除外:
.打印(“未知错误% s“%结果”)
.否则:
.print(胖老板:拿这个%s价格,对吧 % price )
.最后:
.print(胖老板:如果你没钱,我可以给你一个袋子。)
.
老板:你要买多少烟?17.
老板:17元吧?
老板:如果你没钱,我可以给你一个袋子。
在[10]中:尝试:
.price=int(input(‘胖老板:你要买多少烟?’))
.除了名称错误:
.打印(“NameError异常”)
.结果异常除外:
.打印(“未知错误% s“%结果”)
.否则:
.print(胖老板:拿这个%s价格,对吧 % price )
.最后:
.print(胖老板:如果你没钱,我可以给你一个袋子。)
.
胖子:你要买多少烟?个性签名
NameError异常
老板:如果你没钱,我可以给你一个袋子。
在[11]:03。例外发货——胖老板:你要买多少烟?异常交付(exception delivery)3354当一个函数/方法的执行过程中出现异常时,会将异常交付给该函数/方法的调用者。如果它被交付给主程序,程序将被终止而不进行异常处理。
给个提示
开发中可以在主函数中加入异常捕捉,主函数中调用的其他函数只要有异常就会传递给主函数的异常捕捉,这样就不需要在代码中加入大量的异常捕捉,可以保证代码的整洁。
定义函数demo1()胖老板:你要买多少烟?定义函数demo2()调用demo1(),调用[11]中的demo2():主程序中的def demo1():
.return int(input(‘胖老板:你要买多少烟?’))
.
在[12]: def demo2():
.返回演示1()
.
在[13]中:
在[13]中:尝试:
.打印(demo2())
.除了名称错误:
.打印(“NameError异常”)
.结果异常除外:
.打印(“未知错误% s“%结果”)
.
胖子:你要买多少烟?空中情况指示器
NameError异常
在[14]中:尝试:
.打印(demo2())
.除了名称错误:
.打印(“NameError异常”)
.结果异常除外:
.打印(“未知错误% s“%结果”)
.
老板:你要买多少烟?17.
17
在[15]:从上面的代码可以看出,demo1的异常可以传递给demo2进行处理。
04.抛出募集异常——胖老板:收钱,不够就抛出异常
注意:抛出一个异常,而不是眨眼。
4.1应用场景在开发中,除了Python解释器在代码执行错误时抛出异常,还可以根据应用独特的业务需求主动抛出异常。
示例提示用户输入香烟钱,如果价格小于18,则抛出异常。
注意,当前函数只负责提示用户输入香烟钱。如果烟钱价格低于18元,其他函数需要额外处理,可以抛出异常。其他需要处理的函数捕捉异常。4.2抛出异常。Python提供了一个异常exception类。开发时,如果要在满足特定业务需求时抛出异常,可以:创建一个异常对象,使用raise关键字抛出异常对象需求。
定义input_price函数提示胖老板:收钱。如果用户输入价格18,抛出异常。如果用户输入18的价格,返回胖老板:你的香烟,忠于你的兰利群In [2]: def input_price():
.
.#收钱
.价格=投入(胖老板:收钱)
.
.#看看钱够不够
.如果int(price)=18:
.退货价格
.
.#钱不够,需要抛出异常
.# 1创建一个异常对象——使用异常的错误消息字符串作为参数。
.ex=异常(“钱不够”)
.
.# 2抛出一个异常对象
.提高ex
.
在[3]中:
在[3]中:尝试:
.价格=投入价格()
.打印(价格)
.结果异常除外:
.打印(“发现错误:% s“%结果”)
.
胖子:收费18。
18
在[4]中:尝试:
.价格=投入价格()
.打印(价格)
.结果异常除外:
.打印(“发现错误:% s“%结果”)
.
胖子:收费17。
错误:钱不够
在[5]中:
关注微信微信官方账号,回复【数据】,Python,PHP,JAVA,web,即可获取Python,PHP,JAVA,前端等视频数据。
来自海洋的渔夫原创作品,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。