calgamo/exception

This package is abandoned and no longer maintained. The author suggests using the calgamolib/exception package instead.

exception hierarchy for calgamo framework

0.4.1 2019-11-07 20:45 UTC

README

Latest Version on Packagist Software License Build Status Coverage Status Code Climate Total Downloads

Description

Calgamo/Exception is a library of exceptions. It provides yet another exception class hierarchy.

Class Hierarchy

\Exception 
  |
  +-- CalgamoException 
  |
  +--[Package]Logic
  |     |
  |     +-- PhpErrorException
  |
  +--[Package]Runtime
        |
        +-- ClassNotFoundException
        |
        +-- HttpStatusException
        |
        +-- InterfaceNotFoundException
        |
        +-- InvalidArgumentException
        |
        +-- PhpParseException

Note

  • [MUST]You MUST NOT catch Logic Exceptions
  • [MUST]You MUST catch Runtime Exceptions

Interface Hierarchy

\Throwable 
    |
    +-- CalgamoExceptionInterface
    |
    +--[Package]Logic
    |     |
    |     +-- LogicExceptionInterface
    |
    +--[Package]Runtime
          |
          +-- BusinessExceptionInterface
          |
          +-- ConfigExceptionInterface
          |
          +-- RuntimeExceptionInterface

Note

  • You can catch exceptions by interface, instead of catching by concrete exception class names.
try{
    doSomething();
}
catch(BusinessExceptionInterface $e)
{
    // This typically means recoverable error, so you can process the exception and continue the procedure.
}
catch(RuntimeExceptionInterface $e)
{
    // This typically means fatal error, so you should report the situation(my be logs) and abort the procedure.
}

Back Traces

Every CalgamoException objects have own backtraces. So you can trace the call history by calling CalgamoException#getBackTraceList() method.

try{
    doSomething();
}
catch(CalgamoException $e)
{
    foreach($e->getBackTraceList() as $trace){      // $trace is always instance of BacktraceItem 
        $file = $trace->getFile();
        $line = $trace->getLine();
        $class = $trace->getClass();
        $type = $trace->getType();
        $function = $trace->getFunction();
        echo "{$class}{$type}{$function} called at {$file}/{$line}" . PHP_EOL;
    });
}

Requirement

PHP 7.1 or later

Installing calgamo/exception

The recommended way to install calgamo/exception is through Composer.

composer require calgamo/exception

After installing, you need to require Composer's autoloader:

require 'vendor/autoload.php';

License

MIT

Author

stk2k

Disclaimer

This software is no warranty.

We are not responsible for any results caused by the use of this software.

Please use the responsibility of the your self.