wiki.techinc.nl/includes/Rest/HttpException.php
Gergő Tisza 1172de3646
Rest: Make LocalizedHttpException emit a stable error code
When a LocalizedHttpException is created with a DataMessageValue,
show the error code to clients (named 'errorKey' to avoid confusion
with the HTTP error code) so it's easier for them to gather
debugging data, have specific handling for certain errors etc.
For plain MessageValue, use the message key for lack of a better
option.

This is roughly identical to how error handling in the Action API
works.

Also tighten up HttpException's $errorData / getData() parameter
to be strictly an array - it doesn't make any sense to pass null
for data. Technically this is a B/C break but passing null is an
exceedingly unlikely usage pattern, and there is no instance of
it in codesearch.

Change-Id: I3626febed6a0402361a461d96942a863fa230ed0
2023-02-01 22:37:51 -08:00

35 lines
677 B
PHP

<?php
namespace MediaWiki\Rest;
/**
* This is the base exception class for non-fatal exceptions thrown from REST
* handlers. The exception is not logged, it is merely converted to an
* error response.
*
* @newable
*/
class HttpException extends \Exception {
/** @var array */
private array $errorData;
/**
* @stable to call
*
* @param string $message
* @param int $code
* @param array $errorData
*/
public function __construct( $message, $code = 500, $errorData = [] ) {
parent::__construct( $message, $code );
$this->errorData = $errorData;
}
/**
* @return array
*/
public function getErrorData(): array {
return $this->errorData;
}
}