primo commit
This commit is contained in:
58
libraries/vendor/tobscure/json-api/src/ErrorHandler.php
vendored
Normal file
58
libraries/vendor/tobscure/json-api/src/ErrorHandler.php
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of JSON-API.
|
||||
*
|
||||
* (c) Toby Zerner <toby.zerner@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Tobscure\JsonApi;
|
||||
|
||||
use Exception;
|
||||
use RuntimeException;
|
||||
use Tobscure\JsonApi\Exception\Handler\ExceptionHandlerInterface;
|
||||
|
||||
class ErrorHandler
|
||||
{
|
||||
/**
|
||||
* Stores the valid handlers.
|
||||
*
|
||||
* @var \Tobscure\JsonApi\Exception\Handler\ExceptionHandlerInterface[]
|
||||
*/
|
||||
private $handlers = [];
|
||||
|
||||
/**
|
||||
* Handle the exception provided.
|
||||
*
|
||||
* @param Exception $e
|
||||
*
|
||||
* @throws RuntimeException
|
||||
*
|
||||
* @return \Tobscure\JsonApi\Exception\Handler\ResponseBag
|
||||
*/
|
||||
public function handle(Exception $e)
|
||||
{
|
||||
foreach ($this->handlers as $handler) {
|
||||
if ($handler->manages($e)) {
|
||||
return $handler->handle($e);
|
||||
}
|
||||
}
|
||||
|
||||
throw new RuntimeException('Exception handler for '.get_class($e).' not found.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a new exception handler.
|
||||
*
|
||||
* @param \Tobscure\JsonApi\Exception\Handler\ExceptionHandlerInterface $handler
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function registerHandler(ExceptionHandlerInterface $handler)
|
||||
{
|
||||
$this->handlers[] = $handler;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user