Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Dynamics CRM SDK中的异常处理_C#_Exception_Dynamics Crm - Fatal编程技术网

C# Dynamics CRM SDK中的异常处理

C# Dynamics CRM SDK中的异常处理,c#,exception,dynamics-crm,C#,Exception,Dynamics Crm,我目前正在开发一个简单的Dynamics CRM应用程序,允许用户创建新的实体记录 因此,当发生错误时,我会得到完整的堆栈,但我想知道是否可以得到导致该错误的属性名称。如果您希望避免对已知CRM平台错误发出完整的堆栈跟踪,可以捕获类型为FaultException的错误,并以适当的方式进行处理,如下所示: try { service.Create(entity); } catch (FaultException<OrganizationServiceFault> ex) {

我目前正在开发一个简单的Dynamics CRM应用程序,允许用户创建新的实体记录


因此,当发生错误时,我会得到完整的堆栈,但我想知道是否可以得到导致该错误的属性名称。

如果您希望避免对已知CRM平台错误发出完整的堆栈跟踪,可以捕获类型为
FaultException
的错误,并以适当的方式进行处理,如下所示:

try
{
    service.Create(entity);
}
catch (FaultException<OrganizationServiceFault> ex)
{
   switch (ex.Detail.ErrorCode)
   {
       case 0x80041103: // QueryBuilderNoAttribute
          Console.WriteLine(ex.Detail.Message);
          // Specific error handling goes here...
          return;

       default:
          throw;
   }
}
试试看
{
服务。创建(实体);
}
捕获(FaultException-ex)
{
开关(ex.Detail.ErrorCode)
{
案例0x80041103://QueryBuilderNoAttribute
Console.WriteLine(例如Detail.Message);
//具体的错误处理在这里。。。
返回;
违约:
投掷;
}
}

平台错误代码是有文档记录的,可以查看。

当您想要避免发出已知CRM平台错误的完整堆栈跟踪时,您可以捕获类型为
FaultException
的错误,并以适当的方式处理它们,如下所示:

try
{
    service.Create(entity);
}
catch (FaultException<OrganizationServiceFault> ex)
{
   switch (ex.Detail.ErrorCode)
   {
       case 0x80041103: // QueryBuilderNoAttribute
          Console.WriteLine(ex.Detail.Message);
          // Specific error handling goes here...
          return;

       default:
          throw;
   }
}
试试看
{
服务。创建(实体);
}
捕获(FaultException-ex)
{
开关(ex.Detail.ErrorCode)
{
案例0x80041103://QueryBuilderNoAttribute
Console.WriteLine(例如Detail.Message);
//具体的错误处理在这里。。。
返回;
违约:
投掷;
}
}

平台错误代码记录在案,可以查看。

我们可以引发异常并显示消息


抛出新的InvalidPlugineExecutionException(“此处消息…”)

我们可以抛出异常并显示消息


抛出新的InvalidPlugineExecutionException(“此处消息…”)

我刚刚从C#中创建了一些事件,我的异常特别告诉我哪个属性有错。我正在使用VS 2017,调试时在事件窗口中简单地选择了异常。例如,Microsoft.Xrm.Sdk.dll中的System.ServiceModel.FaultException(“事件”实体不包含名为“new_backupState”的属性),这实际上取决于您得到的特定错误。正如@davideyenglin所表明的,这当然是可能的,但并非在所有情况下都是如此。通常,这取决于平台是抛出错误还是插件抛出错误。您看到哪些属性异常没有提供属性名称?另外,请告诉我们CRM的版本,以及它是在线的还是内部的。我刚刚从C#创建了一些事件,我的异常特别告诉我哪个属性有错。我正在使用VS 2017,调试时在事件窗口中简单地选择了异常。例如,Microsoft.Xrm.Sdk.dll中的System.ServiceModel.FaultException(“事件”实体不包含名为“new_backupState”的属性),这实际上取决于您得到的特定错误。正如@davideyenglin所表明的,这当然是可能的,但并非在所有情况下都是如此。通常,这取决于平台是抛出错误还是插件抛出错误。您看到哪些属性异常没有提供属性名称?另外,请让我们知道CRM的版本,以及它是在线的还是内部的。