异常处理

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
原文地址:https://www.cnblogs.com/wanglan/p/9583983.html