У меня есть несколько вопросов:Как справиться с обработкой исключений в wcf?
- это нужно использовать попытку поймать во всех слоях ФОС службы
- у меня есть простая многоуровневая служба ФОС:
и определение:
[DataContract]
public class ProductFault
{
public ProductFault(string msg)
{
FaultMessage = msg;
}
[DataMember]
public string FaultMessage;
}
и имеют:
public Product GetProduct(int id)
{
ProductBDO productBDO = null;
try
{
productBDO = productLogic.GetProduct(id);
}
catch (Exception e)
{
string msg = e.Message;
string reason = "GetProduct Exception";
throw new FaultException<ProductFault>
(new ProductFault(msg), reason);
}
if (productBDO == null)
{
string msg =
string.Format("No product found for id {0}",
id);
string reason = "GetProduct Empty Product";
throw new FaultException<ProductFault>(new ProductFault(msg), reason);
}
Product product = new Product();//****
TranslateProductBDOToProductDTO(productBDO,
product);
return product;
}
, когда я прохожу недействителен id
к «» GetProduct метод я получаю сообщение об ошибке:
Как я могу избежать повышения сообщения об ошибке в моем уровне услуг и отправить клиенту?
Как и в каком слое мы можем использовать try catch для обработки исключений базы данных, например, невозможно подключиться к базе данных? –