wiki.techinc.nl/includes/Rest/Reporter/ErrorReporter.php
daniel 13acba25a0 REST: gracefully handle all exceptions.
ResponseFactory::createFromException already had support for arbitrary
exceptions, but Router was so far only using it for HttpExceptions,
leaving other kinds of exceptions uncaught.

In addition to catching all exceptions and generating an appropriate
JSON response for them, this patch introduces the ErrorReporter
interface, with an MWErrorReporter implementation which calls
MWExceptionHandler::rollbackMasterChangesAndLog(). This is how uncaught
errors are handled for requests coming in via api.php, so it seems
appropriate to use the same approach for requests coming in via
rest.php.

Bug: T285984
Change-Id: I0605a7693821ef58fac80ab67f51a742556a37fd
2021-11-02 20:33:13 +01:00

24 lines
536 B
PHP

<?php
namespace MediaWiki\Rest\Reporter;
use MediaWiki\Rest\Handler;
use MediaWiki\Rest\RequestInterface;
use Throwable;
/**
* An ErrorReporter internally reports an error that happened during the handling of a request.
* It must have no effect on the response sent to the client.
*
* @since 1.38
*/
interface ErrorReporter {
/**
* @param Throwable $error
* @param Handler $handler
* @param RequestInterface $request
*/
public function reportError( Throwable $error, Handler $handler, RequestInterface $request );
}