exception.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
  4. * SPDX-FileCopyrightText: 2012-2015 ownCloud, Inc.
  5. * SPDX-License-Identifier: AGPL-3.0-only
  6. */
  7. /** @var array $_ */
  8. /** @var \OCP\IL10N $l */
  9. style('core', ['styles', 'header', 'exception']);
  10. function print_exception(Throwable $e, \OCP\IL10N $l): void {
  11. print_unescaped('<pre>');
  12. p($e->getTraceAsString());
  13. print_unescaped('</pre>');
  14. if ($e->getPrevious() !== null) {
  15. print_unescaped('<br />');
  16. print_unescaped('<h4>');
  17. p($l->t('Previous'));
  18. print_unescaped('</h4>');
  19. print_exception($e->getPrevious(), $l);
  20. }
  21. }
  22. ?>
  23. <div class="guest-box wide">
  24. <h2><?php p($l->t('Internal Server Error')) ?></h2>
  25. <p><?php p($l->t('The server was unable to complete your request.')) ?></p>
  26. <p><?php p($l->t('If this happens again, please send the technical details below to the server administrator.')) ?></p>
  27. <p><?php p($l->t('More details can be found in the server log.')) ?></p>
  28. <?php if (isset($_['serverLogsDocumentation']) && $_['serverLogsDocumentation'] !== ''): ?>
  29. <p><a href="<?php print_unescaped($_['serverLogsDocumentation']) ?>" target="_blank" rel="noopener"><?php p($l->t('For more details see the documentation ↗.')) ?></a></p>
  30. <?php endif; ?>
  31. <h3><?php p($l->t('Technical details')) ?></h3>
  32. <ul>
  33. <li><?php p($l->t('Remote Address: %s', [$_['remoteAddr']])) ?></li>
  34. <li><?php p($l->t('Request ID: %s', [$_['requestID']])) ?></li>
  35. <?php if (isset($_['debugMode']) && $_['debugMode'] === true): ?>
  36. <li><?php p($l->t('Type: %s', [$_['errorClass']])) ?></li>
  37. <li><?php p($l->t('Code: %s', [$_['errorCode']])) ?></li>
  38. <li><?php p($l->t('Message: %s', [$_['errorMsg']])) ?></li>
  39. <li><?php p($l->t('File: %s', [$_['file']])) ?></li>
  40. <li><?php p($l->t('Line: %s', [$_['line']])) ?></li>
  41. <?php endif; ?>
  42. </ul>
  43. <?php if (isset($_['debugMode']) && $_['debugMode'] === true): ?>
  44. <br />
  45. <h3><?php p($l->t('Trace')) ?></h3>
  46. <?php print_exception($_['exception'], $l); ?>
  47. <?php endif; ?>
  48. </div>