if ( $exception instanceof ILocalizedException ) {
$msg = $exception->getMessageObject();
$params = [];
+ } elseif ( $exception instanceof MessageSpecifier ) {
+ $msg = Message::newFromSpecifier( $exception );
+ $params = [];
} else {
// Extract code and data from the exception, if applicable
if ( $exception instanceof UsageException ) {
if ( ( $e instanceof DBQueryError ) && !$config->get( 'ShowSQLErrors' ) ) {
$params = [ 'apierror-databaseerror', WebRequest::getRequestId() ];
} else {
- $params = [
- 'apierror-exceptioncaught',
- WebRequest::getRequestId(),
- $e instanceof ILocalizedException
- ? $e->getMessageObject()
- : wfEscapeWikiText( $e->getMessage() )
- ];
+ if ( $e instanceof ILocalizedException ) {
+ $msg = $e->getMessageObject();
+ } elseif ( $e instanceof MessageSpecifier ) {
+ $msg = Message::newFromSpecifier( $e );
+ } else {
+ $msg = wfEscapeWikiText( $e->getMessage() );
+ }
+ $params = [ 'apierror-exceptioncaught', WebRequest::getRequestId(), $msg ];
}
$messages[] = ApiMessage::create( $params, $code );
}
namespace Wikimedia\Rdbms;
use MessageSpecifier;
-use ILocalizedException;
-use Message;
/**
* Base class for the more common types of database errors. These are known to occur
* @ingroup Database
* @since 1.23
*/
-class DBExpectedError extends DBError implements MessageSpecifier, ILocalizedException {
+class DBExpectedError extends DBError implements MessageSpecifier {
/** @var string[] Message parameters */
protected $params;
public function getParams() {
return $this->params;
}
-
- /**
- * @inheritDoc
- * @since 1.29
- */
- public function getMessageObject() {
- return Message::newFromSpecifier( $this );
- }
}
class_alias( DBExpectedError::class, 'DBExpectedError' );