我有一个与 WPF 应用程序一起使用的 WCF 服务。
我正在尝试实现错误处理,以便服务将根据错误向用户提供说明,即(例如代码错误写入日志并通知用户联系支持)与(例如尝试将重复值写入唯一字段通知用户具有重复的字段并要求更改值并重试...没有日志条目)
我已成功创建错误 DataContract,并且可以在 WPF 应用程序中获取数据。事实上,整个系统都按预期工作。然而,我的问题是以下代码部分对我的强迫症造成了严重破坏。这似乎是砍和斜线。
try
{
db.SaveChanges();
}
catch (Exception ex)
{
String message = "";
if (ex.InnerException.ToString()
.Contains("Cannot insert duplicate key row") == false)
{
logError le = new logError();
le.log(ex, "AddTemplate");
message = "An error has occured,
please contact you support representative";
}
else
{
message = "Code already exists";
}
throw new FaultException<myError>
(new myError { Operation = "Add Template",
ProblemType = message });
}
除了我在这里所做的之外,是否有更好的方法来识别错误以便向客户端发送特定消息。String.Contains 部分是真正困扰我的部分。