Как я могу настроить оповещение или звуковой сигнал в случае поломки моего кода? (В идеале на Python)

Я запускаю некоторый код для робота, и он будет работать, пока я не завершу процесс вручную. ИЛИ, если в коде неожиданно возникает ошибка, например синтаксическая ошибка или другие подобные ошибки/исключения, и происходит сбой.

Мне было интересно, можно ли настроить какое-нибудь оповещение или звуковой сигнал, когда мой код выходит из строя.

Моя цель — отвести взгляд от экрана и проверять его только в том случае, если процесс остановился. Если есть какие-то другие распространенные способы добиться вышеперечисленного, это было бы здорово!

Я могу настроить звуковой сигнал, используя библиотеки Python, но задача состоит в том, чтобы заставить его выполняться, когда код неожиданно выходит из строя.

Ну, вы определенно можете написать сценарий, который отслеживает процесс и, если процесс завершается, издает звук. Я бы разделил задачу на две части: как контролировать процесс в Python и как издавать звуковой сигнал внутреннего динамика в Python.

Elerium115 22.07.2024 10:08

См. stackoverflow.com/questions/61384477/…

Thierry Lathuille 22.07.2024 10:14
I was wondering if it is possible to обычно является вопросом не по теме, связанным с переполнением стека. напишите немного кода, и если вы застрянете, вам помогут здесь
folen gateis 22.07.2024 10:15

Спасибо за отзыв, я напишу код и добавлю его в вопрос. Я полностью застрял на этом вопросе, но с ответом ниже я попытаюсь что-то собрать воедино.

dzdsds 22.07.2024 10:23
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
4
62
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

if __name__ == '__main__':
   main()

Прежде чем запустить программу, сделайте следующее:

try:
   main()
except Exception as e:
   do_bleep()
   raise e

Таким образом, вы получите звуковой сигнал, а затем все равно получите исключение, как обычно.

Супер полезно, спасибо. Один вопрос: если код разбивается на несколько уровней по сравнению с main(), но исключение все равно возникает?

dzdsds 22.07.2024 10:22

@dzdsds да. Python попытается запустить функцию, и если произойдет какая-либо ошибка (при условии, что она не обнаружена другим оператором try-Exception внутри этих слоев), он издаст звуковой сигнал.

K-D-G 22.07.2024 10:27

Вы можете просто использовать операторы try иException, когда ваш код ломается. Пример:

from playsound import playsound
try:
    print("blah blah blah")
    variable += 1
except:
    playsound("beep.mp3")

Не забудьте подключить команду try ко всему, что вы сейчас написали.

Другие вопросы по теме

CsvHelper не может найти заголовок столбца, которого нет
Почему исключение «Exception», похоже, не перехватывает исключение?
«Exception.Exception(SerializationInfo, StreamingContext)» устарело» – лучшая практика реализации исключений?
Неожиданное поведение генератора, если он не назначен переменной
Как использовать try-catch (IOException) для BufferedWriter.write, вложенного в if-else?
Где следует создавать исключения в шестиугольной архитектуре?
Как вернуть пользовательское сообщение об ошибке для неверного значения перечисления в Spring Boot RequestBody?
Как написать устойчивый объектно-ориентированный метод для таблицы обновления SQL с повтором в catch
Где из стандарта я прочитал, что исключения производного класса, хранящиеся по ссылке на базовый класс, отсекаются при обнаружении?
Как перенаправить исключение, перехваченное промежуточным программным обеспечением, обратно в метод действия контроллера в C# ASP.NET Core?