ret = int(input("number:")) print(ret*"*") 执行结果: number:10 **********
如果输入的是非数字,此时程序就会报错
ValueError: invalid literal for int() with base 10: 'q'
友好的报错
try:
[][2] ret = int(input("number:")) print(ret*"*") except ValueError: #当错误类型为ValueError是执行下面语句 print("输入错误,请输入一个数字")
except IndexError:
print("超出列表的最大长度”)
执行结果: number:q 输入错误,请输入一个数字
try是我们需要处理的代码
except 后面跟一个错误类型,当代码发生错误且错误类型符合的时候,就会执行except中的代码
except支持多分支
万能异常
try: ret = int(input("number:")) print(ret*"*") except Exception as error: print("老铁,出错了",error) 执行结果: 老铁,出错了 invalid literal for int() with base 10: 'qq'
有了万能处理机制仍然需要把能预测到的问题单独处理
单独处理的所有内容都应该写在万能异常之前
try: ret = int(input("number:")) print(ret*"*") except ValueError: print("输入的数据类型有误") except Exception: print("老铁,出错了") else: print("没有异常的时候就执行else中的代码") 执行结果: number:1 * 没有异常的时候就执行else中的代码
finally :无论成功失败都 执行,在于return相遇时,fimally也会执行,finally通常在函数中使用
try: ret = int(input("number:")) print(ret*"*") except ValueError: print("输入的数据类型有误") except Exception: print("老铁,出错了") else: print("没有异常的时候就执行else中的代码") finally: print("========")
参考:
https://www.cnblogs.com/Eva-J/articles/7281240.html#_label6