From 6a2f4dc67ab6e1a92bf68b65bc1b8746b842a6c7 Mon Sep 17 00:00:00 2001 From: Tobias Schultze Date: Mon, 24 Jun 2019 03:47:45 +0100 Subject: [PATCH] Extract unrecoverable exception to interface --- .../DelayedMessageHandlingException.php | 2 +- .../MessageDecodingFailedException.php | 2 +- .../NoHandlerForMessageException.php | 2 +- .../Exception/UnknownSenderException.php | 2 +- .../UnrecoverableExceptionInterface.php | 26 +++++++++++++++++++ .../UnrecoverableMessageHandlingException.php | 7 ++--- .../Exception/ValidationFailedException.php | 2 +- src/Symfony/Component/Messenger/Worker.php | 4 +-- 8 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 src/Symfony/Component/Messenger/Exception/UnrecoverableExceptionInterface.php diff --git a/src/Symfony/Component/Messenger/Exception/DelayedMessageHandlingException.php b/src/Symfony/Component/Messenger/Exception/DelayedMessageHandlingException.php index 313d6f672c..4314a4f2fb 100644 --- a/src/Symfony/Component/Messenger/Exception/DelayedMessageHandlingException.php +++ b/src/Symfony/Component/Messenger/Exception/DelayedMessageHandlingException.php @@ -17,7 +17,7 @@ namespace Symfony\Component\Messenger\Exception; * * @author Tobias Nyholm */ -class DelayedMessageHandlingException extends \RuntimeException implements ExceptionInterface +class DelayedMessageHandlingException extends RuntimeException { private $exceptions; diff --git a/src/Symfony/Component/Messenger/Exception/MessageDecodingFailedException.php b/src/Symfony/Component/Messenger/Exception/MessageDecodingFailedException.php index 9e429ecc9b..f908d42b5e 100644 --- a/src/Symfony/Component/Messenger/Exception/MessageDecodingFailedException.php +++ b/src/Symfony/Component/Messenger/Exception/MessageDecodingFailedException.php @@ -16,6 +16,6 @@ namespace Symfony\Component\Messenger\Exception; * * @experimental in 4.3 */ -class MessageDecodingFailedException extends \InvalidArgumentException implements ExceptionInterface +class MessageDecodingFailedException extends InvalidArgumentException { } diff --git a/src/Symfony/Component/Messenger/Exception/NoHandlerForMessageException.php b/src/Symfony/Component/Messenger/Exception/NoHandlerForMessageException.php index a3fc0fa414..1e8e674d6a 100644 --- a/src/Symfony/Component/Messenger/Exception/NoHandlerForMessageException.php +++ b/src/Symfony/Component/Messenger/Exception/NoHandlerForMessageException.php @@ -16,6 +16,6 @@ namespace Symfony\Component\Messenger\Exception; * * @experimental in 4.3 */ -class NoHandlerForMessageException extends \LogicException implements ExceptionInterface +class NoHandlerForMessageException extends LogicException { } diff --git a/src/Symfony/Component/Messenger/Exception/UnknownSenderException.php b/src/Symfony/Component/Messenger/Exception/UnknownSenderException.php index 72fccfa566..ec138c1e20 100644 --- a/src/Symfony/Component/Messenger/Exception/UnknownSenderException.php +++ b/src/Symfony/Component/Messenger/Exception/UnknownSenderException.php @@ -16,6 +16,6 @@ namespace Symfony\Component\Messenger\Exception; * * @experimental in 4.3 */ -class UnknownSenderException extends \InvalidArgumentException implements ExceptionInterface +class UnknownSenderException extends InvalidArgumentException { } diff --git a/src/Symfony/Component/Messenger/Exception/UnrecoverableExceptionInterface.php b/src/Symfony/Component/Messenger/Exception/UnrecoverableExceptionInterface.php new file mode 100644 index 0000000000..d5dd01dbaa --- /dev/null +++ b/src/Symfony/Component/Messenger/Exception/UnrecoverableExceptionInterface.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Messenger\Exception; + +/** + * Marker interface for exceptions to indicate that handling a message will continue to fail. + * + * If something goes wrong while handling a message that's received from a transport + * and the message should not be retried, a handler can throw such an exception. + * + * @author Tobias Schultze + * + * @experimental in 4.3 + */ +interface UnrecoverableExceptionInterface extends \Throwable +{ +} diff --git a/src/Symfony/Component/Messenger/Exception/UnrecoverableMessageHandlingException.php b/src/Symfony/Component/Messenger/Exception/UnrecoverableMessageHandlingException.php index df08e79d8b..3a5e52be21 100644 --- a/src/Symfony/Component/Messenger/Exception/UnrecoverableMessageHandlingException.php +++ b/src/Symfony/Component/Messenger/Exception/UnrecoverableMessageHandlingException.php @@ -12,15 +12,12 @@ namespace Symfony\Component\Messenger\Exception; /** - * Thrown while handling a message to indicate that handling will continue to fail. - * - * If something goes wrong while handling a message that's received from a transport - * and the message should not be retried, a handler can throw this exception. + * A concrete implementation of UnrecoverableExceptionInterface that can be used directly. * * @author Frederic Bouchery * * @experimental in 4.3 */ -class UnrecoverableMessageHandlingException extends RuntimeException +class UnrecoverableMessageHandlingException extends RuntimeException implements UnrecoverableExceptionInterface { } diff --git a/src/Symfony/Component/Messenger/Exception/ValidationFailedException.php b/src/Symfony/Component/Messenger/Exception/ValidationFailedException.php index a05a213526..da87bcd2a0 100644 --- a/src/Symfony/Component/Messenger/Exception/ValidationFailedException.php +++ b/src/Symfony/Component/Messenger/Exception/ValidationFailedException.php @@ -18,7 +18,7 @@ use Symfony\Component\Validator\ConstraintViolationListInterface; * * @experimental in 4.3 */ -class ValidationFailedException extends \RuntimeException implements ExceptionInterface +class ValidationFailedException extends RuntimeException { private $violations; private $violatingMessage; diff --git a/src/Symfony/Component/Messenger/Worker.php b/src/Symfony/Component/Messenger/Worker.php index 65fa17b5b3..a51cd3506f 100644 --- a/src/Symfony/Component/Messenger/Worker.php +++ b/src/Symfony/Component/Messenger/Worker.php @@ -17,7 +17,7 @@ use Symfony\Component\Messenger\Event\WorkerMessageHandledEvent; use Symfony\Component\Messenger\Event\WorkerMessageReceivedEvent; use Symfony\Component\Messenger\Event\WorkerStoppedEvent; use Symfony\Component\Messenger\Exception\HandlerFailedException; -use Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException; +use Symfony\Component\Messenger\Exception\UnrecoverableExceptionInterface; use Symfony\Component\Messenger\Retry\RetryStrategyInterface; use Symfony\Component\Messenger\Stamp\DelayStamp; use Symfony\Component\Messenger\Stamp\ReceivedStamp; @@ -191,7 +191,7 @@ class Worker implements WorkerInterface private function shouldRetry(\Throwable $e, Envelope $envelope, RetryStrategyInterface $retryStrategy): bool { - if ($e instanceof UnrecoverableMessageHandlingException) { + if ($e instanceof UnrecoverableExceptionInterface) { return false; }