blob: 286a3d23a573c6bbd17cbef77bc9b5c1d3e27131 [file] [log] [blame]
#!/bin/env python
# -*- coding: utf-8 -*-
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
"""
所有自定义Exception的基类
"""
class PaloException(Exception):
"""Benchmark所有的异常的基类
Attributes:
message: 关于异常的说明
kwargs: 给异常附带的参数
Example:
为了方便后续的日志等格式化处理,在抛出异常时都附带一段解释性说明字符串,
并附带可选的一组Key-value值。所有的说明字符串不要使用格式化内容,而是
使用固定的内容。例如:
DBException(PaloException):
pass
Good:
raise DBException("Connect to database fail.", host=HOST, port=Port)
Bad:
raise DBException("Connect to database fail. host=%s, port=%d"
% (HOST, PORT))
"""
def __init__(self, message="", **kwargs):
self.message = message
self.kwargs = kwargs
def __repr__(self):
return "%s(message=%r, **%r)" % (
self.__class__.__name__, self.message, self.kwargs)
def __str__(self):
return "%s %s" % (self.message, self.kwargs)
class PaloClientException(PaloException):
"""palo client exception"""
pass