Source code for watson.serialize.errors

# -*- coding: utf-8 -*-
[docs]class Base(RuntimeError): """An extendible class for responding to exceptions caused within your application. Usage: .. code-block: python class MyRestError(errors.Base): pass # somewhere in your code... raise MyRestError(code=01, message='You broke it', developer_message='Invalid index supplied') # {'code': '01406', message='You broke it', 'developer_message': 'Invalid index supplied'} """ class Meta(object): attributes = ( 'code', 'status', 'message', 'developer_message')
[docs] def __init__( self, code, message='Unknown Error', status_code=406, developer_message=None): """Initialize the error. Args: code (int/string): A unique exception code for the error, gets combined with the status_code status_code (int): The HTTP status code associated with the response (see https://httpstatuses.com/) message (string): A human friendly exception message developer_message (string): A more complex exception message aimed at deveopers """ super(Base, self).__init__(message) self.status_code = status_code self.code = '{}{}'.format(status_code, code) self.message = message self.developer_message = '{}: {}'.format( self.__class__.__name__, developer_message or message)