1
0
mirror of https://github.com/flarum/core.git synced 2025-10-11 23:14:29 +02:00

Catch Throwables so that we handle internal PHP errors too

This commit is contained in:
Toby Zerner
2018-11-11 17:54:19 +10:30
parent 66404e1f61
commit 295a007cd5
4 changed files with 13 additions and 8 deletions

View File

@@ -12,6 +12,7 @@
namespace Flarum\Api;
use Exception;
use Throwable;
use Tobscure\JsonApi\Document;
use Tobscure\JsonApi\ErrorHandler as JsonApiErrorHandler;
@@ -34,8 +35,12 @@ class ErrorHandler
* @param Exception $e
* @return JsonApiResponse
*/
public function handle(Exception $e)
public function handle(Throwable $e)
{
if (! $e instanceof Exception) {
$e = new Exception($e->getMessage(), $e->getCode(), $e);
}
$response = $this->errorHandler->handle($e);
$document = new Document;

View File

@@ -11,12 +11,12 @@
namespace Flarum\Api\Middleware;
use Exception;
use Flarum\Api\ErrorHandler;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\MiddlewareInterface as Middleware;
use Psr\Http\Server\RequestHandlerInterface as Handler;
use Throwable;
class HandleErrors implements Middleware
{
@@ -40,7 +40,7 @@ class HandleErrors implements Middleware
{
try {
return $handler->handle($request);
} catch (Exception $e) {
} catch (Throwable $e) {
return $this->errorHandler->handle($e);
}
}