From 85dce7fab21a5c884d7166452b6a5b12d3865058 Mon Sep 17 00:00:00 2001 From: Umherirrender Date: Sun, 26 Sep 2021 21:36:38 +0200 Subject: [PATCH] Include name of page identity on failure within WikiPageFactory Depend on PageReference::__toString for debug should be enough Change-Id: I740c7ed0328eedaba4f66178ef7343833c87abe8 --- includes/page/PageAssertionException.php | 59 ++++++++++++++++++++++++ includes/page/WikiPageFactory.php | 6 +-- 2 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 includes/page/PageAssertionException.php diff --git a/includes/page/PageAssertionException.php b/includes/page/PageAssertionException.php new file mode 100644 index 00000000000..efd2b432e5e --- /dev/null +++ b/includes/page/PageAssertionException.php @@ -0,0 +1,59 @@ +normalizedMessage = $normalizedMessage; + $this->messageContext = $messageContext; + parent::__construct( + self::getMessageFromNormalizedMessage( $normalizedMessage, $messageContext ), + $code, + $previous + ); + } +} diff --git a/includes/page/WikiPageFactory.php b/includes/page/WikiPageFactory.php index ea06221b27b..39cabc84dbd 100644 --- a/includes/page/WikiPageFactory.php +++ b/includes/page/WikiPageFactory.php @@ -3,7 +3,6 @@ namespace MediaWiki\Page; use DBAccessObjectUtils; -use InvalidArgumentException; use MediaWiki\Linker\LinkTarget; use MediaWiki\Page\Hook\WikiPageFactoryHook; use stdClass; @@ -57,8 +56,9 @@ class WikiPageFactory { if ( !$pageIdentity->canExist() ) { // BC with the Title class - throw new InvalidArgumentException( - "The given PageIdentity does not represent a proper page" + throw new PageAssertionException( + 'The given PageIdentity {pageIdentity} does not represent a proper page', + [ 'pageIdentity' => $pageIdentity ] ); }