# defender-security/3.1.0/vendor/thecodingmachine/safe/lib/Exceptions/PcreException.php

Defender Security – Malware Scanner, Login Security &amp; Firewall, version 3.1.0. 22 lines.

- Page: https://pluginprobe.com/plugins/defender-security/3.1.0/code/vendor/thecodingmachine/safe/lib/Exceptions/PcreException.php
- Raw: https://pluginprobe.com/plugins/defender-security/3.1.0/raw/vendor/thecodingmachine/safe/lib/Exceptions/PcreException.php
- Modified: 2022-06-13T09:01:40+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/defender-security/3.1.0/code/vendor/thecodingmachine/safe/lib/Exceptions/PcreException.php#L10-L20`.

```php
<?php


namespace Safe\Exceptions;

class PcreException extends \Exception implements SafeExceptionInterface
{
    public static function createFromPhpError(): self
    {
        $errorMap = [
            PREG_INTERNAL_ERROR => 'PREG_INTERNAL_ERROR: Internal error',
            PREG_BACKTRACK_LIMIT_ERROR => 'PREG_BACKTRACK_LIMIT_ERROR: Backtrack limit reached',
            PREG_RECURSION_LIMIT_ERROR => 'PREG_RECURSION_LIMIT_ERROR: Recursion limit reached',
            PREG_BAD_UTF8_ERROR => 'PREG_BAD_UTF8_ERROR: Invalid UTF8 character',
            PREG_BAD_UTF8_OFFSET_ERROR => 'PREG_BAD_UTF8_OFFSET_ERROR',
            PREG_JIT_STACKLIMIT_ERROR => 'PREG_JIT_STACKLIMIT_ERROR',
        ];
        $errMsg = $errorMap[preg_last_error()] ?? 'Unknown PCRE error: '.preg_last_error();
        return new self($errMsg, \preg_last_error());
    }
}

```
