Как сделать исключения для рельсов более информативными? - PullRequest
2 голосов
/ 13 октября 2011

Я ищу способ сделать мое исключение рельсов более информативным. Например, было бы удобно напечатать несколько строк кода вместе с обратным следом и состоянием локальных переменных.

Хорошие примеры библиотек такого типа - PHP XDebug и FirePHP. Но я не могу найти ничего похожего на рубин.

Кроме того, я хочу использовать его на своем компьютере разработчика, поэтому онлайн-сервисы неприменимы.

Обновление
Я нашел проект, который именно то, что я ищу: PrettyException ( скриншот ). К сожалению, он не обновлялся 7 лет.

Ответы [ 3 ]

0 голосов
/ 22 октября 2011

Что именно вы пытаетесь решить? Основная проблема с отображением кода, который вызвал исключение (и так же относится к вашему гему), заключается в том, что это последний выполненный код. По определению не совсем верно, что этот код на самом деле поднял проблему. Трассировка стека может показать вам гораздо больше.

Использование приложения, такого как Airbrakeapp (ранее hoptoad), может помочь вам обнаруживать ошибки в реальных приложениях. Конечно, это работает правильно, только если вы повысите, когда вам нужно: -)

Надеюсь, что это ставит вещи в перспективе.

0 голосов
/ 22 октября 2011

В зависимости от того, как / где генерируются исключения, использование Pry на сайте исключений является удивительным.

Если они ваши исключения, добавить pry легко; просто выручите в спасении (если это не слишком далеко).

Если это исключение фреймворка , я не уверен, насколько глубоко оно может быть введено в процесс.

Инструментирование Ваши классы будут (относительно) просты, но если вы хотите что-то более глубокое, в игры нужно будет играть. Один отвратительный, но квази-работоспособный вариант - опросить трассировку стека и извлечь информацию о файле / строке таким образом, а затем запустить редактор на любом из этих уровней. «Все», что вам нужно сделать, это обернуть мир во что-то, что знает, что искать. Он злой, но вкусный.

0 голосов
/ 17 октября 2011

Я предпочитаю использовать что-то под названием исключение-уведомитель , которое отправит мне сообщение по электронной почте при возникновении исключения и отправит мне всю возможную информацию, которая мне понадобится. Основное внимание уделяется работе на производстве, где она неоценима, когда что-то идет не так. Он также может работать в разработке, если это необходимо.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...