python基础之错误和异常处理
短信预约 -IT技能 免费直播动态提醒
import Exception
# except 在捕获错误异常的时候 是要根据具体的错误类型来捕获的
# 用一个块 可以捕获多个不同类型的异常
# EXception 可以捕获所有异常 当对出现的问题或者错误不确定的情况下 可以使用此种
print(dir(Exception))
try:
# print(b) #捕获逻辑的代码
li=[1,2,3,4]
print(li[10])
pass
except NameError as msg:
# 捕获到的错误 才会在这里执行
print(msg)
pass
except IndexError as msg:
print(msg)
print('初次接触异常')
print('HAHAHAHAHHAHAHAH')
try:
# print(b) #捕获逻辑的代码
# li=[1,2,3,4]
# print(li[10])
a=10/0
pass
except NameError as msg:
# 捕获到的错误 才会在这里执行
print(msg)
pass
except IndexError as msg:
print(msg)
pass
except ZeroDivisionError as msg:
print(msg)
print('初次接触异常')
print('HAHAHAHAHHAHAHAH')
异常类型
try:
print(b) #捕获逻辑的代码
# li=[1,2,3,4]
# print(li[10])
# a=10/0
pass
# except NameError as msg:
# # 捕获到的错误 才会在这里执行
# print(msg)
# pass
# except IndexError as msg:
# print(msg)
# pass
# except ZeroDivisionError as msg:
# print(msg)
# pass
except Exception as msg:
print(msg)
pass
print('初次接触异常')
print('HAHAHAHAHHAHAHAH')
def A(s):
return 10/int(s)
pass
def B(s):
return A(s)*2
def main():
try:
B('0')
pass
except Exception as msg:
print(msg)
pass
pass
main()
# 不需要在每个可能出错的地方去捕获,只要在合适的层次去捕获错误就可以了 这样的话 就大大减少我们写try----exception的麻烦
# 异常的抛出机制
#如果在运行时发生异常 解释器会查找相应的异常捕获类型
#如果在当前函数里面没有找到的话 它会将异常传递给上层的调用函数
#如果在最外层 没有找到的话 解释器就会退出 程序down掉
class ToolongmyException(Exception): #自定义异常
def __init__(self,leng):
'''
:param leng:长度
'''
self.len=leng
pass
def __str__(self):
return '您输入的数据长度是'+str(self.len)+'已经超过长度了'
pass
def name_Test():
name=input('请输入姓名:')
if len(name)>5:
raise ToolongmyException(len(name)) #抛出异常
else:
print(name)
pass
pass
name_Test()
class ToolongmyException(Exception): #自定义异常
def __init__(self,leng):
'''
:param leng:长度
'''
self.len=leng
pass
def __str__(self):
return '您输入的数据长度是'+str(self.len)+'已经超过长度了'
pass
def name_Test():
name=input('请输入姓名:')
try:
if len(name)>5:
raise ToolongmyException(len(name)) #抛出异常
else:
print(name)
pass
except ToolongmyException as result:
print(result)
pass
finally:
print('执行完毕了')
pass
name_Test()
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341