Мне было очень весело играть с библиотекой Phoenix LiveView , все еще бета.Одна вещь, которая меня смущает, это то, как гарантировать, что мои LiveView будут вести себя предсказуемо и прозрачно, когда возникает исключение.
В обычном мире, основанном на HTTP-запросах, я бы ожидал, чтозапрос сбоя, возвращающий ответ 500 и, возможно, некоторую страницу с ошибкой, которая указывает пользователю «Эй, проблема с сервером».И разработчик может рассчитывать на такие интеграции, как Rollbax , обнаруживший и сообщивший об исключении, поэтому я получаю электронное письмо об ошибке и могу проверить ее на панели инструментов Rollbar.
Но когда мой LiveViewсбой кода, я не получаю эту гарантию.Процесс LiveView восстановится после сбоя и (насколько я понимаю) вернется к своему последнему известному здоровому состоянию, что действительно здорово, но также может вызвать разочарование пользователя (например, «Каждый раз, когда я отправляю вашу форму, он отображает значок загрузки, затемвозвращается к чистому виду ").И мне неясно, как я мог обнаружить или перехватить исключения в моем LiveView, чтобы о них можно было сообщить службе мониторинга ошибок, такой как Rollbar.(За исключением непрактичных решений, таких как добавление rescue
к каждому обработчику)
Как я могу обнаружить исключения, которые происходят в LiveView, чтобы я мог а) каким-то образом предупредить конечного пользователя о проблеме и б) обеспечитьРазработчику сообщается об исключении?