У меня есть серверное приложение, которое я отлаживаю и которое в основном анализирует скрипты (VBscript, Python, Jscript и SQl) для приложения, которое его запрашивает.
Это очень важное приложение, которое в случае сбоя вызываетхаос для многих пользователей.Проблема, с которой я сталкиваюсь, заключается в том, как обрабатывать исключения, чтобы приложение могло продолжаться, и пользователи знали, если что-то не так в их сценариях.
Пример: в сценариях SQL приложение обычно возвращает набор значений (Дата, номер, строка и номер).Таким образом, сценарии должны иметь в конце следующее утверждение:
into dtDate, Number, Number, sString
.Это значения, которые встроены в приложение, и серверное приложение знает, как их интерпретировать.Эти поля обрабатываются в приложении сервера как часть массива.Возвращаемые значения обычно должны быть в определенном порядке, так как индексы для этих полей в массиве жестко закодированы внутри серверного приложения.
Теперь, когда пользователь, пишущий скрипт, забывает одно из этих полей, тогда последнее поле (обычно строка) генерирует исключение IndexOutofBoundsException.
Вопрос в том, как можно восстановиться после исключений такого рода, не удаляя приложение?
Другой пример - ошибка в сценарии, для которой не может быть сгенерировано сообщение об ошибке.Эти ошибки просто исчезают в фоновом режиме в приложении и в конечном итоге приводят к сбою приложения сервера.Сценарии, в которых он терпит неудачу, не обязательно не исполняются полностью, но часть его не исполняется, а остальные выполняются, что делает его довольно странным для пользователя.
Это серверное приложение является родным приложением C ++ и использует технологии COM.
Мне было интересно, есть ли у кого-нибудь идеи о том, как лучше всего обрабатывать исключения, подобные описанным выше, без сбоев.приложение ??