• 异常——python基础篇


    异常

    让程序执行过程中出现异常的时候不崩溃可以继续运行
    注意:不是任何时候都要用异常捕获(知道可能某个位置会出现异常,但不想让程序崩溃时,使用异常)

    • 语法1: 捕获所有异常
      try:
      代码段1
      except:
      代码段2

      # print(1 / 0)  # ZeroDivisionError: division by zero
      try:
          print(1 / 0)
      except:
          print('出现异常了')
      
      """
      出现异常了
      """
      
    • 说明:
      try、except - 关键字,固定写法
      : - 固定写法
      代码段1 - 和try保持一个或多条语句;可能会出现异常的代码(需要捕获异常的代码)
      代码段2 - 出现的异常被捕获到,需要执行的代码
      执行过程:先执行代码段1,如果执行过程中出现异常直接执行代码段2;如果代码段1中没有异常代码段2不会执行

    • 语法2:针对指定类型的异常进行捕获
      try:
      代码段1
      except 异常类型1:
      代码段2

      try:
          print(1 / 0)
      except ZeroDivisionError:
          print('出现异常了')
      """
      出现异常了
      """
      
    • 语法3:针对不同异常做相同的处理
      try:
      代码段1
      except (异常类型1,异常类型2,...):
      代码段2
      执行过程:先执行代码段1,如果代码段1出现异常,先判断出现异常类型和except后面出现的异常是否一致,一致的化,程序不崩溃。直接执行代码段2。不一致,程序崩溃。

      # try:
      #     print([1, 0][2])
      #     print(1 / 0)
      # except (ZeroDivisionError):
      #     print('出现异常了')
      # IndexError: list index out of range
      try:
          print([1, 0][2])
      except (ZeroDivisionError, IndexError):
          print('出现异常了')
      """
      出现异常了
      """
      
    • 语法4:针对不同的异常做不同的处理
      try:
      代码段1
      except 异常类型2:
      代码段2
      except 异常类型3:
      代码段3

      try:
          print([1, 0][2])
      except ZeroDivisionError:
          print('ZeroDivisionError:出现异常了')
      except IndexError:
          print('IndexError:出现异常了')
      """
      IndexError:出现异常了
      """
      
    • 语法5:
      try:
      代码段1
      except 异常类型:
      代码段2
      finally:
      代码段3
      执行过程:不管怎么finally中的代码段都会执行

      try:
          print([1, 0][2])
      except ZeroDivisionError:
          print('ZeroDivisionError:出现异常了')
      except IndexError:
          print('IndexError:出现异常了')
      finally:
          print('finally的不管怎么样都的执行!')
      """
      IndexError:出现异常了
      finally的不管怎么样都的执行!
      """
      

    注意:尽管在函数中的try代码块中有retrun都会执行finally里面的代码。

  • 相关阅读:
    Ext Form
    Ext中 get、getDom、getCmp的区别
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider())
    Ext BoxComponent
    Ext表单提示方式:msgTarget
    Ext.QuickTips.init()的使用
    Ext.Ajax.Request
    FitLayout
    视图Ext.Viewport和窗口Ext.Window用法
    禁用IE缓存
  • 原文地址:https://www.cnblogs.com/nongma-reddy/p/13211782.html
Copyright © 2020-2023  润新知