Source code for aergo.herapy.errors.exception

# -*- coding: utf-8 -*-

import inspect


[docs]class AergoException(Exception): # Exception types Comm = "Communication Exception" Conv = "Conversion Exception" General = "General Exception" def __init__(self, error, exception_type): self.error = error self.exception_type = exception_type def __str__(self): print_err = "{0} : {1}".format(self.exception_type, self.error) return print_err
[docs]class CommunicationException(AergoException): def __init__(self, error): if hasattr(error, 'code') \ and (inspect.isfunction(error.code) or inspect.ismethod(error.code)): self.error_code = error.code() else: self.error_code = None if hasattr(error, 'details') \ and (inspect.isfunction(error.details) or inspect.ismethod(error.details)): self.error_details = error.details() else: self.error_details = None self.exception_type = AergoException.Comm def __str__(self): if self.error_code is None: if self.error_details is None: print_err = "{0}: {1}".format( self.exception_type, "cannot recognize an error detail") else: print_err = "{0}: {1}".format( self.exception_type, self.error_details) else: print_err = "{0} ({1}): {2}".format( self.exception_type, self.error_code, self.error_details) return print_err
""" Use this code when you add another module's exception. You can see AergoException's print(__str__) format by using only this code. If you want another format make __str__ like CommunicationException. class TestException(AergoException): def __init__(self, error): super().__init__(error, EXCEPTION_TYPE) """