В WCF, там событие или метод, который ловит необработанные исключения, или я должен поместить попытку/выгоду в какой-либо метод?
Вам следует использовать внутренние и внешние блоки 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";
}
}
Да, создайте класс, реализующий интерфейс IErrorHandler
:
Позволяет реализатору контролировать сообщение о неисправности, возвращаемое вызывающей стороне, и опционально выполнять пользовательскую обработку ошибок, например, логирование.