
Crashprobe: перехват ошибок Python в синхронном коде и потоках
AndreyProgramMaker 14 минут назад Crashprobe: перехват ошибок Python в синхронном коде и потоках Средний 6 мин 477 Python * Open source * Программирование * Туториал Из песочницы Привет, Хабр! Меня зовут Андрей, как и...
GPT-5.6 31 Temmuz 2026'da yayınlanacak mı?
Вот важная новость с фронта ИИ: AndreyProgramMaker 14 минут назад Crashprobe: перехват ошибок Python в синхронном коде и потоках Средний 6 мин 477 Python * Open source * Программирование * Туториал Из песочницы Привет, Хабр! Меня зовут Андрей, как и многие, я уставал от красных сообщений об ошибках в консоли, где не видно значений переменных. Приходилось ставить print(), гуглить – терял кучу времени.
Поэтому я написал crashprobe – библиотеку, которая делает отладку простой и наглядной. ПроблемаЯ думаю, всем, у кого программа падала из-за ошибки, надоело вот это:Рис. Обычное сообщение об ошибке в консоли Такое сообщение неинформативно, и вот почему:В нём нет списка локальных переменных и их значений во время паденияВ нём нет контекста кодаВ нём нет ссылок на документацию (нужно самостоятельно гуглить)В общем, такого сообщения порой не достаточно для решения проблемы.
Технические детали
Поэтому я и решил сделать инструмент, который даёт всю нужную информацию сразу. Решение: crashprobeЯ решил написать библиотеку, которая автоматически собирает всю нужную информацию об ошибке и показывает её в удобном виде. Вот как та же самая ошибка выглядит с crashprobe:Рис.
HTML-отчёт, сгенерированный crashprobe Что умеет crashprobe (версия 0. 0)Перехватывает любые необработанные исключения в синхронном коде и в любых потоках (через threading. Генерирует HTML‑отчёт (тёмная тема, эмодзи, кнопка копирования) или TXT‑файл (для консоли, удобно на серверах).
Показывает локальные переменные (с типами) для каждого фрейма стека. Показывает контекст кода – несколько строк вокруг проблемной, с подсветкой строки ошибки. Добавляет системную информацию (версия Python, ОС, hostname, имя и ID потока).
Отраслевые последствия
Умеет скрывать пароли/токены через параметр hide_secrets=. Не имеет внешних зависимостей – только стандартная библиотека Python. Как начать пользоватьсяУстановка – одна команда:pip install crashprobeИ две строчки в вашем коде:import crashprobe crashprobe.
start()После этого любая необработанная ошибка автоматически сгенерирует отчёт и откроет его в браузере (или напечатает в консоль, если выбран TXT-формат). Пример с ошибкой:def divide(a, b): return a / b print(divide(1, "Hello # TypeError: unsupported operand type(s) for /: 'int' and 'str'Вместо скучного сообщения в консоли вы увидите красивую HTML-страницу с подробностями. Настройка: как изменить поведение crashprobeУ функции crashprobe.
start() есть три необязательных параметра. Они позволяют адаптировать библиотеку под разные сценарии. ПараметрТипПо умолчаниюКраткое описаниеauto_openboolTrueАвтоматически открывать отчёт (в браузере для HTML, печатать в консоль для TXT)file_formatstr"HTML"Формат отчёта: "HTML" (красочная страница) или "TXT" (простой текст)hide_secretslistСписок ключевых слов.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





