Обработка Исключений в 64-битных Приложениях NT Service на C++BuilderDelphi , Синтаксис , Ошибки и ИсключенияВопрос, поднятый в данном запросе, касается обработки исключений в 64-битных приложениях NT Service, созданных с помощью C++Builder. Компания столкнулась с проблемой, когда клиентское приложение начинало логировать множество необработанных исключений C++. После долгих диагностических сборок и попыток выяснить причину, было установлено, что исключения Delphi/C++ перехватываются не в правильных блоках Пример кода, представленный в запросе, демонстрирует ситуацию, когда в цикле генерируются исключения, и затем происходит их перехват. В случае нормальной работы сервера все исключения перехватываются корректно, и в логе указывается, что все тесты пройдены успешно. Однако, когда сервер работает в аномальном режиме, исключения перехватываются блоком по умолчанию, что указывает на проблему в обработке исключений. Компания не смогла воспроизвести проблему в своих тестовых средах, и у них нет информации о конфигурации сервера клиента, включая тип экземпляра AWS, историю обновлений Windows и используемый AMI. Проект был собран с использованием RAD Studio 10.4 Update 2 и настроен на использование runtime packages. В редакции от 5/23 указано, что был изменен диагностический код для анализа информации о SEH исключениях, чтобы выяснить причину, по которой блок Подтвержденный ответ:Проблема заключается в том, что исключения Delphi/C++ не перехватываются в соответствующих блоках Альтернативный ответ:Попытки диагностики и изменения кода обработки исключений могут помочь в определении проблемы. Рекомендуется использовать SEH обработку ( Примеры из комментариев:
Рекомендации по коду:
Заключение:Для дальнейшего исследования проблемы рекомендуется собрать подробные логи о всех исключениях, включая код исключения и его информацию, что может помочь в выявлении и устранении проблемы. В данном ответе мы рассмотрели проблему, связанную с обработкой исключений в 64-битных приложениях NT Service, созданных на C++Builder. Мы пересказали информацию из запроса, указали на возможные причины проблемы и привели рекомендации по её устранению, включая примеры кода на Object Pascal (Delphi), которые могут быть полезны при диагностике и тестировании приложения. Обработка Исключений в 64-битных Приложениях NT Service на C++Builder не происходит должным образом, так как исключения Delphi/C++ перехватываются не в пользовательских блоках `catch`, а в блоке по умолчанию. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Ошибки и Исключения ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |