WordPress.org

Make WordPress Core

Ticket #16782: 16782.4.patch

File 16782.4.patch, 3.5 KB (added by hakre, 3 years ago)

Like previous plus WP_Error extending Exception

  • wp-includes/class-wp-error.php

     
    1818 * @package WordPress 
    1919 * @since 2.1.0 
    2020 */ 
    21 class WP_Error { 
     21class WP_Error extends Exception { 
    2222        /** 
    2323         * Stores the list of errors. 
    2424         * 
    2525         * @since 2.1.0 
    2626         * @var array 
    27          * @access private 
    2827         */ 
    29         var $errors = array(); 
     28        private $errors = array(); 
    3029 
    3130        /** 
    3231         * Stores the list of data for error codes. 
    3332         * 
    3433         * @since 2.1.0 
    3534         * @var array 
    36          * @access private 
    3735         */ 
    38         var $error_data = array(); 
     36        private $error_data = array(); 
    3937 
    4038        /** 
    4139         * PHP4 Constructor - Sets up error message. 
     
    5250         * @param string|int $code Error code 
    5351         * @param string $message Error message 
    5452         * @param mixed $data Optional. Error data. 
    55          * @return WP_Error 
     53         * @throws WP_Exception on missing code 
    5654         */ 
    57         function WP_Error($code = '', $message = '', $data = '') { 
     55        public function __construct($code = '', $message = '', $data = '') { 
    5856                if ( empty($code) ) 
    59                         return; 
     57                        throw new WP_Error( '', 'Code parameter is missing.' ); 
    6058 
    61                 $this->errors[$code][] = $message; 
    62  
    63                 if ( ! empty($data) ) 
    64                         $this->error_data[$code] = $data; 
     59                parent::__construct( $message ); 
     60                $this->add( $code, $message, $data );            
    6561        } 
    6662 
    6763        /** 
    6864         * Retrieve all error codes. 
    6965         * 
    7066         * @since 2.1.0 
    71          * @access public 
    7267         * 
    7368         * @return array List of error codes, if avaiable. 
    7469         */ 
    75         function get_error_codes() { 
     70        public function get_error_codes() { 
    7671                if ( empty($this->errors) ) 
    7772                        return array(); 
    7873 
     
    8378         * Retrieve first error code available. 
    8479         * 
    8580         * @since 2.1.0 
    86          * @access public 
    8781         * 
    8882         * @return string|int Empty string, if no error codes. 
    8983         */ 
    90         function get_error_code() { 
     84        public function get_error_code() { 
    9185                $codes = $this->get_error_codes(); 
    9286 
    9387                if ( empty($codes) ) 
     
    10498         * @param string|int $code Optional. Retrieve messages matching code, if exists. 
    10599         * @return array Error strings on success, or empty array on failure (if using codee parameter). 
    106100         */ 
    107         function get_error_messages($code = '') { 
     101        public function get_error_messages($code = '') { 
    108102                // Return all messages if no code specified. 
    109103                if ( empty($code) ) { 
    110104                        $all_messages = array(); 
     
    131125         * @param string|int $code Optional. Error code to retrieve message. 
    132126         * @return string 
    133127         */ 
    134         function get_error_message($code = '') { 
     128        public function get_error_message($code = '') { 
    135129                if ( empty($code) ) 
    136130                        $code = $this->get_error_code(); 
    137131                $messages = $this->get_error_messages($code); 
     
    148142         * @param string|int $code Optional. Error code. 
    149143         * @return mixed Null, if no errors. 
    150144         */ 
    151         function get_error_data($code = '') { 
     145        public function get_error_data($code = '') { 
    152146                if ( empty($code) ) 
    153147                        $code = $this->get_error_code(); 
    154148 
     
    161155         * Append more error messages to list of error messages. 
    162156         * 
    163157         * @since 2.1.0 
    164          * @access public 
    165158         * 
    166159         * @param string|int $code Error code. 
    167160         * @param string $message Error message. 
    168161         * @param mixed $data Optional. Error data. 
    169162         */ 
    170         function add($code, $message, $data = '') { 
     163        public function add($code, $message, $data = '') { 
    171164                $this->errors[$code][] = $message; 
    172165                if ( ! empty($data) ) 
    173166                        $this->error_data[$code] = $data; 
     
    183176         * @param mixed $data Error data. 
    184177         * @param string|int $code Error code. 
    185178         */ 
    186         function add_data($data, $code = '') { 
     179        public function add_data($data, $code = '') { 
    187180                if ( empty($code) ) 
    188181                        $code = $this->get_error_code(); 
    189182