2017-05-04 5 views
0

Ich entwickle gerade ein sipmle Dynamics CRM Anwendung, die es dem Benutzer ermöglicht, neue Entitäten Datensätze zu erstellen.Ausnahmebehandlung in Dynamics CRM SDK

Also wenn ein Fehler aufgetreten ist, bekomme ich den vollen Stapel, aber ich wundere mich, wenn ich den Attributnamen verantwortlich für diesen Fehler bekommen könnte.

+1

Ich habe gerade einige Vorfälle aus C# erstellt und meine Ausnahmen haben mir speziell gesagt, welches Attribut fehlerhaft ist. Ich benutze VS 2017 und wählte einfach die Ausnahme im Fenster Ereignisse während des Debuggens. Zum Beispiel System.ServiceModel.FaultException in Microsoft.Xrm.Sdk.dll ('Incident' Entität enthält kein Attribut mit Name = 'new_backupState') –

+0

Dies hängt wirklich von dem spezifischen Fehler ab, den Sie bekommen. Wie @DavidYenglin zeigt, ist es sicherlich möglich, aber möglicherweise nicht in allen Fällen wahr. Oft hängt es davon ab, ob die Plattform einen Fehler auslöst oder ein Plugin den Fehler auslöst. Welche Attributausnahmen sehen Sie, die den Attributnamen nicht bereitstellen? Bitte teilen Sie uns auch die Version von CRM mit und ob diese online oder vor Ort ist. – Nicknow

Antwort

3

Wenn Sie für bekannte CRM-Plattform Fehler emittierende Voll Stack-Traces vermeiden möchten, können Sie Fehler vom Typ fangen FaultException<OrganizationServiceFault> und sie in geeigneter Weise handhaben, wie folgt aus:

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; 
    } 
} 

Die Plattform Fehlercodes werden dokumentiert und kann auf MSDN nachgeschlagen werden.

-1

Wir können eine Ausnahme auslösen und eine Nachricht anzeigen.

Wirf new InvalidPluginExecutionException ("Nachricht hier ....");