zoukankan      html  css  js  c++  java
  • 约束抛异常

    今日主要内容
    1. 约束(1. 抛出异常, 2. 写抽象类)(难点, 重点)
    1. 抛出异常; NotImplementedError
    2. 抽象类
    from abc import ABCMeta, abstractmethod

    class Base(metaclass = ABCMeta): 抽象类

    @abstractmethod
    def 方法(self):pass

    class Foo(Base): 子类必须重写父类中的抽象方法
    def 方法(self):
    pass
    一个类包含类抽象方法. 这个类一定是抽象类
    抽象类中可以有正常的方法

    抽象类中如果有抽象方法. 这个类将不能创建对象

    接口: 类中都是抽象方法

    2. 异常处理
    try:

    except Error as e:

    except....

    else:

    finally:
    收尾

    import traceback
    try:
    # 尝试执行的代码
    except Exception as e:
    # 除了错之后要做什么
    traceback.format_exc() # 获取堆栈信息(错误信息)

    ry:
    xxxx
    except 错误名称 as 别名:
    出现错误的时候. 要干什么...
    except 错误名称 as 别名:
    出现错误的是偶. 要干什么
    ....
    except Exception as e: # 所有错误的根
    出现的所有的错误. 我都可以这样处理
    else: # 很少用到
    不出错的时候执行这里的代码
    finally:
    结束. 收尾工作
    '''
    # try:
    # print(1/0) # 0不能做除数 ZeroDivisionError: division by zero
    # except ZeroDivisionError as z:
    # print("错了. 除数不能为0")

    # 由python解释器来调用代码. 出现了错误. 系统会自动的产生一个叫异常的对象.
    # 系统会尝试着把错误返回给调用方. 过程被称为:抛异常
    # 我们通过try...except 可以吧系统产生的这个错误获取到. 过程叫捕获异常

    # import traceback
    # # 计算a+b
    # def cul(a, b):
    # if (type(a) == int or type(a) == float) and (type(b) == int or type(b) == float):
    # return a + b
    # else:
    # # 在这里有两种方案. 1. 直接返回 , 2. 抛出异常
    # # raise 抛出 Exception 错误和异常,所有错误的根
    # raise Exception("我要的不是这个. 你应该我传递int或者float")
    #
    #
    # try:
    # print(cul(1, "胡辣汤")) # 加上异常的处理
    # except Exception as e:
    # # 获取到错误信息. 我们需要访问堆栈信息
    # print(traceback.format_exc()) # 获取堆栈信息
    # print("出现了错误")


    # 我们出现的错误. python中没有给出具体的记录, 慎用. 名字一定要符合规范
    # JackException
    # 自定义异常
    # class GenderException(Exception):
    # pass
    #
    # class Person:
    # def __init__(self, name, gender):
    # self.name = name
    # self.gender = gender
    #
    # # 洗澡 -> 男的进男浴室
    # def goto_nan_yushi(self):
    # if self.gender != "男":
    # raise GenderException("性别不对") # 除了名字以外都是父类中的Exception
    # else:
    # print("欢迎光临.")
    # try:
    # p2 = Person("wusir", "女")
    # p2.goto_nan_yushi()
    # p1 = Person("alex", "男")
    # p1.goto_nan_yushi()
    # except GenderException as e:
    # print("你去男澡堂子干嘛?")
    # except Exception as e:
    # print("其他错误")


    3. 日志处理
    logging

    critical
    error(最多)
    wraning
    info
    debug

  • 相关阅读:
    五大P2P平台费用一览
    警惕P2B模式
    仿照jquery封装一个自己的js库
    怎样给div增加resize事件
    美化浏览器滚动条效果
    手机端触屏手指滑动方向及拖动层
    JS中原型链中的prototype与_proto_的个人理解与详细总结(**************************************************************)
    JavaScript this用法总结(**************************************)
    js中call、apply、bind那些事2
    深刻理解JavaScript---闭包
  • 原文地址:https://www.cnblogs.com/wwjx/p/9947173.html
Copyright © 2011-2022 走看看