add 异常，装饰器，元类