Написал COM+ объект на NET. В некоторых случаях (не зависящих от меня) при работе этого объекта может вылетать ошибка. И мне ОБЯЗАТЕЛЬНО нужно отлавливать все Exception и обрабатывать их. НО! конструкция try {...} catch{...} НЕ РАБОТАЕТ. В любом случае дебагер выдает Unhandled exception... и потом выполнение метода прекращяется не попадая ни в catch ни в finally
Может ко подскажет как это лечить?
Да и ещё — на клиент Exception не приходит — всё продолжает работать будто метод COM+ объекта не вызывался вовсе...
Здравствуйте, vektory, Вы писали:
V>Написал COM+ объект на NET. В некоторых случаях (не зависящих от меня) при работе этого объекта может вылетать ошибка. И мне ОБЯЗАТЕЛЬНО нужно отлавливать все Exception и обрабатывать их. НО! конструкция try {...} catch{...} НЕ РАБОТАЕТ. В любом случае дебагер выдает Unhandled exception... и потом выполнение метода прекращяется не попадая ни в catch ни в finally
catch{} пробовали?
Какая ошибка? WIN SE (Structured exception)? Может код покажете?
V>Может ко подскажет как это лечить?
V>Да и ещё — на клиент Exception не приходит — всё продолжает работать будто метод COM+ объекта не вызывался вовсе...
Да, забыл ещё упомянуть, что при возникновении ЛЮБОГО COM+ исключения выскакивает окно, что мол приложение выполнило недопустимую операцию. Типа, как при падении офиса.
На стороне среднего звена это будет выглядеть очень дико...
Здравствуйте, Константин Л., Вы писали:
КЛ>Здравствуйте, vektory, Вы писали:
КЛ>catch{} пробовали?
КЛ>Какая ошибка? WIN SE (Structured exception)? Может код покажете?
К сожалению полный код смогу показать только завтра.
Но суть примерно в следующем (пишу по памяти с упрощениями):
public string BuildReport(string xmlDataUrl, string xsltUrl)
{
try
{
return XsltTransformator.Transform(xmlDataUrl, xsltUrl);
}
catch (Exception e)
{
return string.Format("<xml error=\"{0}\"/>", e.Message);
}
}
Систему проектировал не я. Мне просто передали на сопровождение.
Xslt скрипты пишут в частности и клиенты. В качестве трансформатора вызывается XslCompiledTransform.
Так вот. Ошибки могут быть самые разные, но с одинаковым результатом. В cath программа не попадает, а выскакивает окно об обрушении процесса (DW20.EXE) и процес киляется...
Конкретно в моём случае попалось StackOverflowException.