Поймайте необработанное исключение в WCF

В WCF, там событие или метод, который ловит необработанные исключения, или я должен поместить попытку/выгоду в какой-либо метод?

5
задан abatishchev 29 January 2013 в 04:31
поделиться

2 ответа

Вам следует использовать внутренние и внешние блоки TRY / Catch.

Итак, первый метод начинается с Try

Затем, если что-то выбрасывается в другом методе, по умолчанию используется ваш общий улов в методе, который находится в открытом методе, чтобы вернуть значение клиенту.

Я всегда использую ведение журнала в своих блоках catch, чтобы сообщить администратору, что пошло не так, но у меня всегда есть внешняя функция catch, возвращающая значение вроде «Пожалуйста, за исключением наших Appogies, служба WCF.Blah завершилась неудачно. Просмотрите журналы сервера на предмет полная информация "

Таким образом, у вас будет обработка ошибок, ведение журнала и приятные сообщения вашим клиентам.

public class Service1 : IService1
    {
    public string GetData(int value)
    {
        try
        { 
            return somemethod(value);
        }
        catch(Exception ex)
        {
            LoggingHelper.Log(ex);
            return "Please Except our Appogies the WCF.Blah service has failed. Please review the server logs for complete details";
        }
    }
0
ответ дан 14 December 2019 в 08:45
поделиться

Да, создайте класс, реализующий интерфейс IErrorHandler :

Позволяет реализатору контролировать сообщение о неисправности, возвращаемое вызывающей стороне, и опционально выполнять пользовательскую обработку ошибок, например, логирование.

7
ответ дан 14 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: