Начинающий программист здесь.Я формулирую этот вопрос на языке Python, но думаю, что это имеет смысл для любого языка программирования, который имеет концепцию обработки исключений.
Вот оно: я пишу программное обеспечение для бизнес-клиента,кто будет взаимодействовать с программным обеспечением с помощью графического интерфейса.
Я думаю о том, чтобы поместить всю основную бизнес-логику в блок try
/ except
, чтобы перехватывать все исключения, которых у меня нетпланируется (и что я поймаю и решу, прежде чем они всплывают).Это могут быть ошибки в других библиотеках, которые я использую, мои собственные ошибки или другие непредвиденные события.Вывод этих исключений я хочу затем отобразить в сообщении об ошибке графического интерфейса.
Причиной этого будет то, что если такая ошибка возникнет, когда мое программное обеспечение будет развернуто, и клиент позвонит мне и скажет мне "эй, я получил это сообщение об ошибке «X», тогда у меня был бы хотя бы какой-то намек от X о том, что пошло не так, и я мог немедленно начать отладку - вместо того, чтобы GUI просто молча выходил и клиент звонил мне и говорил «ваше приложениетолько что умер ".
1) Это было бы хорошей идеей?Поскольку это программное обеспечение будет использоваться в «безопасных настройках», не возникает проблема утечки конфиденциальной информации в сообщение об ошибке, которое затем отображается.Но я все еще не уверен, нет ли других проблем, с которыми я мог бы столкнуться при таком подходе.
2) Если я должен идти по этому пути, я должен использовать except BaseException
или except Exception
?
Даже после консультации Иерархия исключений Python Я действительно не понимаю, когда три дополнительных исключения, которые я получил бы, если бы я использовал первый вариант, действительно были выброшены.Мое приложение не будет использовать клавиатуру, поэтому я думаю Я в безопасности относительно KeyboardInterrupt
, но я не уверен насчет двух других SystemExit
и GeneratorExit
.