PcreException.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. declare(strict_types=1);
  3. namespace phpDocumentor\Reflection\Exception;
  4. use InvalidArgumentException;
  5. use const PREG_BACKTRACK_LIMIT_ERROR;
  6. use const PREG_BAD_UTF8_ERROR;
  7. use const PREG_BAD_UTF8_OFFSET_ERROR;
  8. use const PREG_INTERNAL_ERROR;
  9. use const PREG_JIT_STACKLIMIT_ERROR;
  10. use const PREG_NO_ERROR;
  11. use const PREG_RECURSION_LIMIT_ERROR;
  12. final class PcreException extends InvalidArgumentException
  13. {
  14. public static function createFromPhpError(int $errorCode): self
  15. {
  16. switch ($errorCode) {
  17. case PREG_BACKTRACK_LIMIT_ERROR:
  18. return new self('Backtrack limit error');
  19. case PREG_RECURSION_LIMIT_ERROR:
  20. return new self('Recursion limit error');
  21. case PREG_BAD_UTF8_ERROR:
  22. return new self('Bad UTF8 error');
  23. case PREG_BAD_UTF8_OFFSET_ERROR:
  24. return new self('Bad UTF8 offset error');
  25. case PREG_JIT_STACKLIMIT_ERROR:
  26. return new self('Jit stacklimit error');
  27. case PREG_NO_ERROR:
  28. case PREG_INTERNAL_ERROR:
  29. default:
  30. }
  31. return new self('Unknown Pcre error');
  32. }
  33. }