Python异常处理

异常处理

"""
try:
    可能发生错误的语句
except 异常类型:
    如果try语句发生错误,那么执行此处语句
"""

try:
    print(1/0)
# 捕获异常
except ZeroDivisionError:
    # 如果捕获到了异常,那么就执行下边的语句
    print("除数不能为0!")

print("hello")

try:
    L = [1,2,3,4]
    print(L[6])
except IndexError:
    print("超出索引范围!")

Name = "jack"
try:
    print(name)
except NameError:
    print("变量不存在!")

try:
    main()
except BaseException:
    pass

try:
    print(1/0)
except:
	print("除数不能为零!")

"""
try:
    有可能发生错误的语句
except 异常信息:
    异常之后要执行的代码
else:
    没有发生异常的时候执行下边的语句
"""

try:
    print(1/1)
except BaseException:
    print("除数不能为0!")
else:
    print("hello")

"""
try:
    有可能发生错误的语句
except 异常信息:
    异常之后要执行的代码
else:
    没有发生异常的时候执行下边的语句
finally:
    不管是否有异常,都会执行这里的语句
"""

try:
    print(1/1)
except BaseException:
    print("除数不能为0!")
finally:
    print("无论如何都会执行我!")

异常处理的特殊情况

  • python中的错误其实就是class,所有的错误都继承baseexception,所以我们在捕获的时候,它捕获了该类型的错误,并且它还把子类一网打尽

    • try:
          print(1/0)
      except BaseException as e:
          print("异常1")
      except ZeroDivisionError as e:
          print("异常2")
      
  • 有些错误无法捕获
    比如说内存错误,如果我们想开辟一块新的内存空间,那就必须先释放一部分内存

  • 跨越多层调用:

    • def func1(num):
          print(1/num)
      def func2(num):
          func1(num)
      def main():
          func2(0)
      try:
          main()
      except ZeroDivisionError as e:
          print("*****")
      #Main调用了func2,func2调用了func1,但是出现错误的是func1,这个时候只要main捕获到了就可以处理
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值