• 异常


    定义:异常是指在语法逻辑正确的前提下,出现的问题。在python里,异常就是一个类

    语法:

      try:
          尝试实现某个操作,
          如果没出现异常,任务就可以完成
          如果出现异常,将异常从当前代码块扔出去尝试解决异常
    
      except 异常类型1:
          解决方案1:用于尝试在此处处理异常解决问题
    
      except 异常类型2:
          解决方案2:用于尝试在此处处理异常解决问题
    
      except (异常类型3,异常类型4...)
          解决方案:针对多个异常使用相同的处理方式
    
      excpet Exception:
          解决方案:所有异常的解决方案
    
      else:
          如果没有出现任何异常,将会执行此处代码
    
      finally:
          管你有没有异常都要执行的代码
    # 简单异常案例
    # 给出提示信息
    try:
        num = int(input("Plz input your number:"))
        rst = 100/num
        print("计算结果是: {0}".format(rst))
    
    # 如果是多种error的情况
    # 需要把越具体的错误,越往前放
    # 在异常类继承关系中,越是子类的异常,越要往前放,
    # 越是父亲类的异常,越要往后放
    
    # 在处理异常的时候,一旦拦截到某一个异常,则不在继续往下查看,直接进行下一个
    # 代码,即有finally则执行finally语句块,否则就执行下一个大的语句
    except ZeroDivisionError as e:
        print("你特娘的输入的啥玩意儿")
        print(e)
        # exit是退出程序的意思
        exit()
    except NameError as e:
        print("名字起错了")
        print(e)
    
    except AttributeError as e:
        print("好像属性有问题")
        print(e)
        exit()
        
    # 所有异常都是继承自Exception
    # 如果写上下面这句话,任何异常都会拦截住
    # 而且,下面这句话一定是最后一个exception
    except Exception as e:
        print("我也不知道就出错了")
        print(e)
        
    except ValueError as e:
        print("NO>>>>>>>>>>>>>>>>>>")

    手动引发异常:当某些情况,用户希望自己引发一个异常的时候,可以使用raise关键字来引发异常

    # 自己定义异常
    # 需要注意:自定义异常必须是系统异常的子类
    class MyValueError(ValueError):
        pass
    
    try:
        print("我爱XXX")
        print(3.1415926)
        #手动引发一个异常
        #注意语法:raise ErrorClassName
        #因为MyValueError是ValueError的子类所以会打印出"ValueError"
        raise MyValueError
        print("还没完呀")
    except NameError as e:
        print("NameError")
    except ValueError as e:
        print("ValueError")
    except Exception as e:
        print("有异常")
    finally:
        print("我肯定会被执行的")
    
    #我爱XXX
    #3.1415926
    #ValueError
    #我肯定会被执行的
     
  • 相关阅读:
    基于K-means聚类算法的图像分割 和 基于机器学习的图像二元分类
    .off文件三维数据读取并显示
    滑动窗口&Region Proposal&Selective Search&KMeans&二元分类(空间分割)
    ENVI+IDL遥感图像处理
    OpenCV与图像分割 边界检测
    SublimeText3追踪函数工具CTags设置及使用
    岗位要求
    bash shell脚本如何获取脚本所在目录
    mongodb获取到的可能已经沦为肉鸡的云服务器地址
    wireshark查看包显示:Packet size limitedduring capture
  • 原文地址:https://www.cnblogs.com/wjw2018/p/10515820.html
Copyright © 2020-2023  润新知