Я пишу код Erlang, и я очень не уверен, что я должен позволить, чтобы все не быстро. Одна из проблем, которые я нахожу с ошибкой, - это то, что для разработчика/пользователя генерируемое исключение довольно бессмысленно. Любая идея, что я должен вернуть, которая не даст эзотерических и трудночитаемых следов стека?Возврат кода ошибки в Erlang
ответ
Я бы порекомендовал вам войти в систему с помощью error_logger (3) и попросить разработчика посмотреть, что на самом деле происходит за кулисами. Рекомендуется выполнить OTP principles, чтобы собрать все данные, возвращаемые VM при сбоях процесса.
Я бы посоветовал быстро провалиться и научиться читать следы стека.
Означает ли это, что все сотрудники службы поддержки, которые должны следить за системой, должны научиться читать сообщения об ошибках Erlang? – Zubair
Конечно, всем, чья задача заключается в диагностике или устранении проблем, необходимо изучить необходимые инструменты для этого. Это означает, что трассы erlang, трассировки Python, C core дампы, следы Java или различные уровни детализации знаний. Вероятно, вам нужны несколько специалистов для конкретных технологий и многие обобщающие, которые знают основы и могут перенаправить соответствующие специалисты. – ndim
Хорошо, спасибо. Я не понимал, что это часть поддержки людей. Я дам им знать. Я знаю, что они не будут счастливы, хотя, но это лучше для меня, так как в настоящее время они всегда приходят ко мне, когда происходит ошибка производства (около 20 раз в день). – Zubair
Основной принцип в Erlang является:
Сделать это крах!
Я нашел весьма полезным избежать так называемого защитного программирования. Понятие объясняется в немного более подробно на странице Правила программирования Erlang:
http://www.erlang.se/doc/programming_rules.shtml#HDR11
Кроме того, даже если некоторые из ошибок Эрланга может быть немного загадочным, хороший способ справиться с это след их! Трассировка в Эрланге довольно проста. Посмотрите на этот краткий справочник:
http://aloiroberto.wordpress.com/2009/02/23/tracing-erlang-functions/
или просто обратитесь к официальной документации.
Поскольку Erlang является функциональным языком, ошибки часто бывают легко выявлены, если вы склонны писать Pure functions, потому что чистая функция с заданными аргументами всегда возвращает тот же результат. Таким образом, имея трассировку стека, как только вы обнаружили неудачную функцию, вы можете выяснить, что вызвало ошибку. Противоположный императивному программированию вам не нужно тратить много времени на отладку кода, часто вам даже не нужен отладчик, и поиск ошибки превращается в интересную игру. This статья полезна.
- 1. Возврат кода ошибки из CMD в Powershell
- 2. Erlang: Возврат из функции
- 3. Возврат 401 Код ошибки HTTP-кода
- 4. Возврат кода ошибки или сообщения от AJAXFileUpload
- 5. Erlang: Возврат функции из функции
- 6. Erlang: Объясните кусок кода
- 7. Запуск кода C в erlang
- 8. Erlang - анализ кода
- 9. Возврат ошибки в NSMutableArray
- 10. erlang обрабатывает связь (ошибка кода)
- 11. Избегайте ошибки NZEC в Erlang в SPOJ
- 12. Erlang: Возврат переменной (gb_trees) из вызова функции?
- 13. скрипта для запуска Erlang кода
- 14. Запуск PHP-кода от erlang
- 15. Страница ошибки Возврат кода состояния 200 ответ по умолчанию
- 16. Компиляция кода Erlang на Windows
- 17. Возврат ошибки Oracle в PHP?
- 18. Возврат ошибки в ответ JSON
- 19. Возврат пользователя в начало кода
- 20. Возврат ошибки из моделей
- 21. Throw или возврат ошибки
- 22. Возврат кода функции
- 23. Возврат удалённого кода
- 24. Возврат к началу кода
- 25. Возврат кода после цикла
- 26. PythonAnywhere возврат Планировщика кода
- 27. Есть ли смысл исправлять ошибки в Erlang?
- 28. Ошибки с вводом данных в Erlang
- 29. Запуск кода erlang в основном режиме
- 30. нужна помощь в понимании этого кода erlang
error_logger выглядит хорошо. Так что я должен назвать это с места, выбрасывающего исключение или место, где его ловят? И разве это не испортило код? – Zubair
Вам не нужно ничего звонить. На самом деле это не нужно делать, поскольку вы устанавливаете обработчик регистратора при запуске своей программы. –
На http://spawnlink.com/ есть хорошие статьи, в которых также есть пример использования таких обработчиков. –