python处理异常的方式_Python报错出现异常的介绍,及其处理方式

序言

文中的文本及图片来自互联网,仅作学习培训、沟通交流应用,不具备一切商业行为,如有什么问题请立即在线留言以作解决。

下列文章内容来自SAMshare,创作者SonerYıldırım

每一个手机软件程序猿的梦想是撰写一个能够稳定运作的程序流程。可是,最初状况并不是这样。产生错误时,将终止实行编码。

出现意外的状况或情况很有可能会造成 错误。Python将这种状况视作出现异常,并依据出现异常种类引起不一样种类的错误。

ValueError,TypeError,AttributeError和SyntaxError是这种出现异常的一些实例。喜讯是Python还出示了解决出现异常的方式。

考虑到下列规定客户输入数据并打印数据平方米的编码。

a = int(input("Please enter a number:"))print(f'{a} squared is {a*a}')

要是输入是数据,它就可以一切正常工作中。可是,假如客户输入一个字符串数组,python将引起ValueError:

我们可以在编码中完成try-except块,以能够更好地解决此出现异常。比如,我们可以向客户回到更简易的错误信息,或是规定她们出示别的输入。

try:

a= int(input("Please enter a number:"))print(f'{a} squared is {a*a}')except:print("Wrong input type! You must enter a number!")

在上述所说情况下,编码会更清晰地告之客户相关错误的信息内容。

假如因为try块中的编码引起了出现异常,则实行将再次应用except块中的句子。因而,由程序猿决策如何处理出现异常。

一般的try-except块将捕捉一切种类的错误。可是,我们可以更实际一些。比如,大家很有可能只对特殊种类的错误很感兴趣,或是期待以不一样方法解决不一样种类的错误。

能够应用except句子特定错误的种类。考虑到下边的编码,规定客户从列表中输入一个数据。随后,它依据输入从词典回到一个名字。

dict_a = {1:'Max', 2:'Ashley', 3:'John'}

number= int(input(f'Pick a number from the list: {list(dict_a.keys())}'))

假如客户输入的数据没有给出列表中,大家将接到KeyError。假如输入的并不是数据,大家将获得ValueError。我们可以应用2个except句子来解决这二种状况。

try:

dict_a= {1:'Max', 2:'Ashley', 3:'John'}

number= int(input(f'Pick a number from the list:

{list(dict_a.keys())}'))

print(dict_a[number])exceptKeyError:print(f'{number} is not in the list')exceptValueError:print('You must enter a number!')

Python还容许引起您自身的出现异常。它是自定默认设置出现异常的一种。raise关键词和错误种类用以建立您自身的出现异常。

try:

a= int(input("Please enter a number:"))print(f'{a} squared is {a*a}')except:raise ValueError("You must enter a number!")

假如是是非非数据输入,它是错误信息。

ValueError: You must enter a number!

使我们做另一个事例,展现怎样在涵数中应用try-except块。

avg_value涵数回到数据列表的均值。

a = [1, 2, 3]defavg_value(lst):

avg= sum(lst) /len(lst)return avgprint(avg_value(a))

如果我们将一个空列表传送给此涵数,则它将得出ZeroDivisionError,由于空列表的长短为零。

我们可以在涵数中完成try-except块来解决此出现异常。

defavg_value(lst):try:

avg= sum(lst) /len(lst)returnavgexcept:print('Warning: Empty list')return 0

假如列表为空,该涵数将显示信息警示并回到0。

a =[]print(avg_value(a))#Warning: Empty list#0

try和except块用以解决出现异常。肯定用以保证 标准与作用规定兼容。

假如肯定为假,则该涵数不容易再次。因而,肯定能够是保护性程序编写的实例。程序猿保证 一切都按预估开展。

使我们在avg_value涵数中完成肯定。大家务必保证 列表不以空。

defavg_value(lst):assert not len(lst) == 0, 'No values'avg= sum(lst) /len(lst)return avg

假如列表的长短为零,则该涵数马上停止。不然,它将不断到完毕。

假如assert句子中的标准为false,则将引起AssertionError:

a =[]print(avg_value(a))

AssertionError: No values

肯定针对搜索编码中的错误十分有效。因而,他们可用以适用检测。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值