code: protected function convertExceptionToArray($exception)
      {
          if (!YII_DEBUG && !$exception instanceof UserException && !$exception instanceof HttpException) {
              $exception = new HttpException(500, 'There was an error at the server.');
          }
  
          $array = [
              'name' => ($exception instanceof Exception || $exception instanceof ErrorException) ? $exception->getName() : 'Exception',
              'message' => $exception->getMessage(),
              'code' => $exception->getCode(),
          ];
          if ($exception instanceof HttpException) {
              $array['status'] = $exception->statusCode;
          }
          if (YII_DEBUG) {
              $array['type'] = get_class($exception);
              if (!$exception instanceof UserException) {
                  $array['file'] = $exception->getFile();
                  $array['line'] = $exception->getLine();
                  $array['stack-trace'] = explode("\n", $exception->getTraceAsString());
                  if ($exception instanceof \yii\db\Exception) {
                      $array['error-info'] = $exception->errorInfo;
                  }
              }
          }
          if (($prev = $exception->getPrevious()) !== null) {
              $array['previous'] = $this->convertExceptionToArray($prev);
          }
  
          return $array;
      }
docs: Converts an exception into an array.
  @param \Exception $exception the exception being converted
  @return array the array representation of the exception.