Partager via


Gestion des erreurs dans l’API TOM (AMO-TOM)

S’applique à : SQL Server 2016 et versions ultérieures Analysis Services Azure Analysis Services Fabric/Power BI Premium

Une pratique courante pour les bibliothèques managées telles que le modèle d’objet tabulaire (TOM) Analysis Services Management Objects (AMO) consiste à utiliser des exceptions comme mécanisme pour signaler des conditions d’erreur à l’utilisateur.

Lorsqu’une erreur est détectée dans AMO-TOM, en plus de lever quelques exceptions .NET standard telles que ArgumentException et InvalidOperationException, TOM peut également lever plusieurs exceptions spécifiques à TOM.

Les exceptions TOM sont dérivées de la classe AmoException, couvrant à la fois les exceptions AMO et les exceptions spécifiques à TOM.

Pour illustrer la gestion des exceptions dans TOM, examinons l’une des exceptions les plus courantes, à savoir la classe OperationException.

OperationException est levée lorsqu’un utilisateur lance une opération sur le serveur Analysis Services et que le serveur ne parvient pas à effectuer une opération, soit parce que l’action était illégale, soit en raison d’une autre erreur interne ou externe.

Lorsqu’il est levée, l’objet OperationException contient une liste d’erreurs XMLA retournées par le serveur.

Notez que le serveur n’acceptera pas les modifications non valides. Si cela se produit, rétablissez l’arborescence du modèle dans le dernier état correct connu à l’aide de la méthode UndoLocalChanges, corrigez le modèle, puis soumettre à nouveau.

Exemple de code : gérer les exceptions

 try 
 { 
  // Change the Model, for example create a table. 
  // … 
   model.saveChanges(); 
 } 
  catch(operationException ex) 
 { 
  foreach(XmlaError err in ex.Results.OfType<XmlaError>().cast<XmlaError>()) 
  { 
   Console.WriteLine("Error returned from the server:" + err.Messsage ); 
  } 
 } 

Étapes suivantes

Les autres exceptions pertinentes sont les suivantes :