Внутренняя обработка Exception в COM+ на NET
От: vektory  
Дата: 10.04.07 10:50
Оценка:
Написал COM+ объект на NET. В некоторых случаях (не зависящих от меня) при работе этого объекта может вылетать ошибка. И мне ОБЯЗАТЕЛЬНО нужно отлавливать все Exception и обрабатывать их. НО! конструкция try {...} catch{...} НЕ РАБОТАЕТ. В любом случае дебагер выдает Unhandled exception... и потом выполнение метода прекращяется не попадая ни в catch ни в finally

Может ко подскажет как это лечить?

Да и ещё — на клиент Exception не приходит — всё продолжает работать будто метод COM+ объекта не вызывался вовсе...
Re: Внутренняя обработка Exception в COM+ на NET
От: Константин Л.  
Дата: 10.04.07 11:28
Оценка:
Здравствуйте, vektory, Вы писали:

V>Написал COM+ объект на NET. В некоторых случаях (не зависящих от меня) при работе этого объекта может вылетать ошибка. И мне ОБЯЗАТЕЛЬНО нужно отлавливать все Exception и обрабатывать их. НО! конструкция try {...} catch{...} НЕ РАБОТАЕТ. В любом случае дебагер выдает Unhandled exception... и потом выполнение метода прекращяется не попадая ни в catch ни в finally


catch{} пробовали?

Какая ошибка? WIN SE (Structured exception)? Может код покажете?

V>Может ко подскажет как это лечить?


V>Да и ещё — на клиент Exception не приходит — всё продолжает работать будто метод COM+ объекта не вызывался вовсе...
Re: Внутренняя обработка Exception в COM+ на NET
От: vektory  
Дата: 10.04.07 11:29
Оценка:
Да, забыл ещё упомянуть, что при возникновении ЛЮБОГО COM+ исключения выскакивает окно, что мол приложение выполнило недопустимую операцию. Типа, как при падении офиса.
На стороне среднего звена это будет выглядеть очень дико...
Re[2]: Внутренняя обработка Exception в COM+ на NET
От: vektory  
Дата: 10.04.07 18:30
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, 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.
Re[3]: Внутренняя обработка Exception в COM+ на NET
От: Константин Л.  
Дата: 11.04.07 10:08
Оценка:
Здравствуйте, vektory, Вы писали:

[]

V>Конкретно в моём случае попалось StackOverflowException.


afaik, StackOverflowException нормальными способами в FW 1.1 не ловится. В FW 2.0 не ловится вообще. Все (?) остальные должны ловиться.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.