-
Notifications
You must be signed in to change notification settings - Fork 0
/
ArgumentNullException.php
62 lines (54 loc) · 1.79 KB
/
ArgumentNullException.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
/**
* Excepción por argumento no especificado
*
* Description. Crea una excepción indicando que parametro
*
* @package System
* @author Marcos Porto
* @copyright Marcos Porto Mariño
* @since v0.1
* PHP 5 >= 5.3.0, PHP 7
*/
namespace System;
use Throwable;
use System\ArgumentException;
use System\HResults;
use System\Localization\Resources;
require_once 'ArgumentException.php';
/**
* Representa una excepción por un parametro establecido a null, indicando el parametro
*/
class ArgumentNullException extends ArgumentException {
public function __construct(string $paramName, string $message = Resources::ArgumentNullExceptionDefaultMessage, int $code = HResults::E_POINTER, Throwable $previous = null) {
parent::__construct($paramName, $message, $code, $previous);
}
/**
* Comprueba el valor de una variable, y en caso de que sea null, lanza una excepción
*
* @param string $paramName Nombre del parametro a comprobar
* @param mixed $value Variable a comprobar
* @throws ArgumentNullException En caso de que $value sea null
*/
public static function validate(string $paramName, $value) {
if($value === null) {
throw new self($paramName);
}
}
/**
* Comprueba el valor de un elemento dentro de un array, y en caso de que sea null, lanza una excepción
*
* @param string $paramName Nombre del parametro a comprobar
* @param array $value Array donde buscar el elemento
* @param mixed $key Indice del elemento en el array
* @return mixed El valor de $value[$key]
* @throws ArgumentNullException En caso de que $value[$key] sea null
*/
public static function validateArray(string $paramName, array $value, $key) {
if(isset($value[$key]) ||
$value[$key] === null ) {
throw new self($paramName . '[' . $key . ']');
}
return $value[$key];
}
}