mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	Updates to ErrorHandler, add missing type hint \Throwable (#18302)
* Updated phpdoc so it has \Throwable
- `abstract protected function renderException($exception);` is extended in web/ErrorHandler to also have `\Error`.
- `public static function convertExceptionToError($exception)` is called from widgets/ActiveField.php with 
```
/**
     * PHP magic method that returns the string representation of this object.
     * @return string the string representation of this object.
     */
    public function __toString()
    {
        // __toString cannot throw exception
        // use trigger_error to bypass this limitation
        try {
            return $this->render();
        } catch (\Exception $e) {
            ErrorHandler::convertExceptionToError($e);
            return '';
        } catch (\Throwable $e) {
            ErrorHandler::convertExceptionToError($e);
            return '';
        }
    }
```
* Add \Throwable to phpdoc in response.php 
The ErrorHandler has been updated in phpdoc to have throwable, this complets that change.
* Update ErrorHandler.php
fixed missing `|`
			
			
This commit is contained in:
		@ -298,7 +298,7 @@ abstract class ErrorHandler extends Component
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Renders the exception.
 | 
					     * Renders the exception.
 | 
				
			||||||
     * @param \Exception $exception the exception to be rendered.
 | 
					     * @param \Exception|\Error|\Throwable $exception the exception to be rendered.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    abstract protected function renderException($exception);
 | 
					    abstract protected function renderException($exception);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -336,7 +336,7 @@ abstract class ErrorHandler extends Component
 | 
				
			|||||||
     *
 | 
					     *
 | 
				
			||||||
     * This method can be used to convert exceptions inside of methods like `__toString()`
 | 
					     * This method can be used to convert exceptions inside of methods like `__toString()`
 | 
				
			||||||
     * to PHP errors because exceptions cannot be thrown inside of them.
 | 
					     * to PHP errors because exceptions cannot be thrown inside of them.
 | 
				
			||||||
     * @param \Exception $exception the exception to convert to a PHP error.
 | 
					     * @param \Exception|\Throwable $exception the exception to convert to a PHP error.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static function convertExceptionToError($exception)
 | 
					    public static function convertExceptionToError($exception)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@ -345,7 +345,7 @@ abstract class ErrorHandler extends Component
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Converts an exception into a simple string.
 | 
					     * Converts an exception into a simple string.
 | 
				
			||||||
     * @param \Exception|\Error $exception the exception being converted
 | 
					     * @param \Exception|\Error|\Throwable  $exception the exception being converted
 | 
				
			||||||
     * @return string the string representation of the exception.
 | 
					     * @return string the string representation of the exception.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static function convertExceptionToString($exception)
 | 
					    public static function convertExceptionToString($exception)
 | 
				
			||||||
@ -363,7 +363,7 @@ abstract class ErrorHandler extends Component
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Converts an exception into a string that has verbose information about the exception and its trace.
 | 
					     * Converts an exception into a string that has verbose information about the exception and its trace.
 | 
				
			||||||
     * @param \Exception|\Error $exception the exception being converted
 | 
					     * @param \Exception|\Error|\Throwable  $exception the exception being converted
 | 
				
			||||||
     * @return string the string representation of the exception.
 | 
					     * @return string the string representation of the exception.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @since 2.0.14
 | 
					     * @since 2.0.14
 | 
				
			||||||
 | 
				
			|||||||
@ -295,7 +295,7 @@ class Response extends \yii\base\Response
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Sets the response status code based on the exception.
 | 
					     * Sets the response status code based on the exception.
 | 
				
			||||||
     * @param \Exception|\Error $e the exception object.
 | 
					     * @param \Exception|\Error|\Throwable $e the exception object.
 | 
				
			||||||
     * @throws InvalidArgumentException if the status code is invalid.
 | 
					     * @throws InvalidArgumentException if the status code is invalid.
 | 
				
			||||||
     * @return $this the response object itself
 | 
					     * @return $this the response object itself
 | 
				
			||||||
     * @since 2.0.12
 | 
					     * @since 2.0.12
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user