diff --git a/src/Exception/SanitizationException.php b/src/Exception/SanitizationException.php index aeaeaf8..c385e58 100644 --- a/src/Exception/SanitizationException.php +++ b/src/Exception/SanitizationException.php @@ -4,6 +4,23 @@ namespace KaririCode\Sanitizer\Exception; -final class SanitizationException extends \RuntimeException +use KaririCode\Exception\AbstractException; + +final class SanitizationException extends AbstractException { + private const CODE_INVALID_INPUT = 4001; + + public static function invalidInput(string $expectedType): self + { + $message = sprintf( + 'Input must be a %s', + $expectedType + ); + + return self::createException( + self::CODE_INVALID_INPUT, + 'INVALID_INPUT', + $message + ); + } } diff --git a/src/Processor/AbstractSanitizerProcessor.php b/src/Processor/AbstractSanitizerProcessor.php index eee92ba..a361e1e 100644 --- a/src/Processor/AbstractSanitizerProcessor.php +++ b/src/Processor/AbstractSanitizerProcessor.php @@ -12,7 +12,7 @@ abstract class AbstractSanitizerProcessor implements Processor protected function guardAgainstNonString(mixed $input): string { if (!is_string($input)) { - throw new SanitizationException('Input must be a string'); + throw SanitizationException::invalidInput('string'); } return $input;