mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-11-16 21:17:14 +01:00
63 lines
2.0 KiB
PHP
63 lines
2.0 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Xentral\Components\Exporter\Exception;
|
||
|
|
||
|
use Exception;
|
||
|
|
||
|
class InvalidJsonException extends Exception implements ExporterExceptionInterface
|
||
|
{
|
||
|
/**
|
||
|
* @param int $errorCode
|
||
|
*
|
||
|
* @return self
|
||
|
*/
|
||
|
public static function fromJsonError($errorCode)
|
||
|
{
|
||
|
$exception = new self(self::mapJsonError($errorCode));
|
||
|
return $exception;
|
||
|
}
|
||
|
|
||
|
private static function mapJsonError($jsonError)
|
||
|
{
|
||
|
switch ($jsonError) {
|
||
|
case JSON_ERROR_NONE:
|
||
|
$msg = 'Unknown error';
|
||
|
break;
|
||
|
case JSON_ERROR_DEPTH:
|
||
|
$msg = 'The maximum stack depth has been exceeded';
|
||
|
break;
|
||
|
case JSON_ERROR_STATE_MISMATCH:
|
||
|
$msg = 'Invalid or malformed JSON';
|
||
|
break;
|
||
|
case JSON_ERROR_CTRL_CHAR:
|
||
|
$msg = 'Control character error, possibly incorrectly encoded';
|
||
|
break;
|
||
|
case JSON_ERROR_SYNTAX:
|
||
|
$msg = 'Syntax error';
|
||
|
break;
|
||
|
case JSON_ERROR_UTF8:
|
||
|
$msg = 'Malformed UTF-8 characters, possibly incorrectly encoded';
|
||
|
break;
|
||
|
case JSON_ERROR_RECURSION:
|
||
|
$msg = 'One or more recursive references in the value to be encoded';
|
||
|
break;
|
||
|
case JSON_ERROR_INF_OR_NAN:
|
||
|
$msg = 'One or more NAN or INF values in the value to be encoded';
|
||
|
break;
|
||
|
case JSON_ERROR_UNSUPPORTED_TYPE:
|
||
|
$msg = 'A value of a type that cannot be encoded was given';
|
||
|
break;
|
||
|
case JSON_ERROR_INVALID_PROPERTY_NAME:
|
||
|
$msg = 'A property name that cannot be encoded was given';
|
||
|
break;
|
||
|
case JSON_ERROR_UTF16:
|
||
|
$msg = 'Malformed UTF-16 characters, possibly incorrectly encoded';
|
||
|
break;
|
||
|
default:
|
||
|
$msg = 'Unknown Error';
|
||
|
}
|
||
|
|
||
|
return $msg;
|
||
|
}
|
||
|
}
|