Fixes #3183: fixed regression after #3175

This commit is contained in:
Alexander Makarov
2014-04-30 01:30:49 +04:00
parent 468e4191e0
commit 340278b59c
4 changed files with 33 additions and 13 deletions

View File

@@ -8,9 +8,8 @@ if ($exception instanceof \yii\web\HttpException) {
} else {
$code = $exception->getCode();
}
if ($exception instanceof \yii\base\Exception) {
$name = $exception->getName();
} else {
$name = $handler->getExceptionName($exception);
if ($name === null) {
$name = 'Error';
}
if ($code) {

View File

@@ -12,12 +12,16 @@
<meta charset="utf-8"/>
<title><?php
$name = $handler->getExceptionName($exception);
if ($exception instanceof \yii\web\HttpException) {
echo (int) $exception->statusCode . ' ' . $handler->htmlEncode($exception->getName());
} elseif ($exception instanceof \yii\base\Exception) {
echo $handler->htmlEncode($exception->getName() . ' ' . get_class($exception));
echo (int) $exception->statusCode . ' ' . $handler->htmlEncode($name);
} else {
echo $handler->htmlEncode(get_class($exception));
$name = $handler->getExceptionName($exception);
if ($name !== null) {
echo $handler->htmlEncode($name . ' ' . get_class($exception));
} else {
echo $handler->htmlEncode(get_class($exception));
}
}
?></title>
@@ -331,11 +335,14 @@ html,body{
if ($exception instanceof \yii\web\HttpException) {
echo '<span>' . $handler->createHttpStatusLink($exception->statusCode, $handler->htmlEncode($exception->getName())) . '</span>';
echo ' &ndash; ' . $handler->addTypeLinks(get_class($exception));
} elseif ($exception instanceof \yii\base\Exception) {
echo '<span>' . $handler->htmlEncode($exception->getName()) . '</span>';
echo ' &ndash; ' . $handler->addTypeLinks(get_class($exception));
} else {
echo '<span>' . $handler->htmlEncode(get_class($exception)) . '</span>';
$name = $handler->getExceptionName($exception);
if ($name !== null) {
echo '<span>' . $handler->htmlEncode($name) . '</span>';
echo ' &ndash; ' . $handler->addTypeLinks(get_class($exception));
} else {
echo '<span>' . $handler->htmlEncode(get_class($exception)) . '</span>';
}
}
?></h1>
<?php endif; ?>

View File

@@ -8,8 +8,9 @@
<span class="arrow">&crarr;</span>
<h2>
<span>Caused by:</span>
<?php if ($exception instanceof \yii\base\Exception): ?>
<span><?= $handler->htmlEncode($exception->getName()) ?></span> &ndash;
<?php $name = $handler->getExceptionName($exception);
if ($name !== null): ?>
<span><?= $handler->htmlEncode($name) ?></span> &ndash;
<?= $handler->addTypeLinks(get_class($exception)) ?>
<?php else: ?>
<span><?= $handler->htmlEncode(get_class($exception)) ?></span>

View File

@@ -379,4 +379,17 @@ class ErrorHandler extends \yii\base\ErrorHandler
return $out;
}
/**
* Returns human-readable exception name
* @param \Exception $exception
* @return string human-readable exception name or null if it cannot be determined
*/
public function getExceptionName($exception)
{
if ($exception instanceof \yii\base\Exception || $exception instanceof \yii\base\InvalidCallException || $exception instanceof \yii\base\InvalidParamException || $exception instanceof \yii\base\UnknownMethodException) {
return $exception->getName();
}
return null;
}
}