Необходимо глобально после отработки action'ов отлавливать потенциально возникающий набор Exception'ов
В Yii1 было такое решение на этот счет http://stackoverflow.com/questions/1112 ... controller
Как быть в Yii2? Насколько я понял этих эвентов уже нет
Yii2 отлов Exception
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Yii2 отлов Exception
Например, так:
Код: Выделить всё
class MyController extends Controller
{
public function run($route, $params = [])
{
try {
return parent::run($route, $params);
} catch (...) {
// ...
}
}
}
Нравится Yii? Давайте сделаем его лучше!.
Re: Yii2 отлов Exception
А как сделать чтобы в случае эксепшена не вываливался дамп стека и работа продолжалась (выполнялся блок catch {...})?
У меня консольное приложение .
У меня консольное приложение .
Re: Yii2 отлов Exception
А можно в конфиге где то, аналогично
'errorHandler' => [
'errorAction' => 'site/error',
],
перенапрявлять все Exception куда либо?
'errorHandler' => [
'errorAction' => 'site/error',
],
перенапрявлять все Exception куда либо?
Re: Yii2 отлов Exception
Можно. Посмотрите мой вариант решения, возможно вам он тоже поможет: https://github.com/developeruz/yii2-custom-errorhandlerRGF писал(а):А можно в конфиге где то, аналогично
'errorHandler' => [
'errorAction' => 'site/error',
],
перенапрявлять все Exception куда либо?
Код: Выделить всё
public function actions()
{
return [
'error' => [
'class' => 'developeruz\yii2_custom_errorhandler\ErrorHandler',
'array_of_exceptions' => [
403 => function()
{
return $this->redirect(Url::to('/site/login'));
},
500 => function()
{
//send notification to administrator
...
return $this->redirect(Url::to('/site/index'));
},
]
]
];
}
Re: Yii2 отлов Exception
Спасибо!
Что то я затупил, все равно все проходит через 'errorAction' => 'site/error', там и ловить надо.
Что то я затупил, все равно все проходит через 'errorAction' => 'site/error', там и ловить надо.