20250628
Бета 1.1
This commit is contained in:
		
							
								
								
									
										67
									
								
								sources/exceptions/JsonException.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								sources/exceptions/JsonException.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| <?php | ||||
|  | ||||
| namespace goodboyalex\php_components_pack\exceptions; | ||||
|  | ||||
| use Exception; | ||||
|  | ||||
| /** | ||||
|  * Ошибка работы с JSON. | ||||
|  * | ||||
|  * @author Александр Бабаев | ||||
|  * @package php_components_pack | ||||
|  * @version 1.0 | ||||
|  * @since 1.1.0 | ||||
|  */ | ||||
| final class JsonException extends Exception | ||||
| { | ||||
|     /** | ||||
|      * @var string|null $JsonFileName Имя файла JSON. | ||||
|      */ | ||||
|     public ?string $JsonFileName; | ||||
|  | ||||
|     /** | ||||
|      * @link https://www.php.net/manual/ru/function.json-last-error.php | ||||
|      * @var int $JsonErrorCode Код ошибки JSON. | ||||
|      */ | ||||
|     public int $JsonErrorCode; | ||||
|  | ||||
|     /** | ||||
|      * @link https://www.php.net/manual/ru/function.json-last-error-msg.php | ||||
|      * @var string|null $JsonErrorMessage Сообщение об ошибке JSON. | ||||
|      * | ||||
|      * Внимание! В отличие от функции json_last_error_msg(), данная переменная при отсутствии ошибок выводит null, а не | ||||
|      *     "No error". | ||||
|      */ | ||||
|     public ?string $JsonErrorMessage; | ||||
|  | ||||
|     /** | ||||
|      * Конструктор. | ||||
|      * | ||||
|      * @param string|null $fileName Имя файла JSON. | ||||
|      * @param int $errorCode Код ошибки JSON. | ||||
|      * @param string|null $errorMessage Сообщение об ошибке JSON. | ||||
|      */ | ||||
|     public function __construct (?string $fileName = null, int $errorCode = JSON_ERROR_NONE, | ||||
|         ?string $errorMessage = null) | ||||
|     { | ||||
|         // Если код ошибки JSON равен 0 | ||||
|         if ($errorMessage === "No error") | ||||
|             // - то присваиваем ему null для совместимости | ||||
|             $errorMessage = null; | ||||
|  | ||||
|         // Сохраняем сообщение об ошибке | ||||
|         $this->JsonErrorMessage = $errorMessage; | ||||
|  | ||||
|         // Если сообщение пусто, то присваиваем ему "" для совместимости | ||||
|         $errorMessage = $errorMessage ?? ""; | ||||
|  | ||||
|         // Запускаем базовый конструктор | ||||
|         parent::__construct($errorMessage); | ||||
|  | ||||
|         // Присваиваем имя файла | ||||
|         $this->JsonFileName = $fileName; | ||||
|  | ||||
|         // Присваиваем код ошибки | ||||
|         $this->JsonErrorCode = $errorCode; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user