Compartilhar via


Tratamento de erros na API DO TOM (AMO-TOM)

Aplica-se a: SQL Server 2016 e posteriores do Analysis Services Azure Analysis Services Fabric/Power BI Premium

Uma prática comum para bibliotecas gerenciadas, como AMO (Analysis Services Management Objects) Tabular Object Model (TOM), é usar exceções como um mecanismo para relatar condições de erro ao usuário.

Quando um erro é detectado no AMO-TOM, além de gerar poucas exceções padrão do .NET, como ArgumentException e InvalidOperationException, o TOM também pode gerar várias exceções específicas do TOM.

As exceções TOM são derivadas da Classe AmoException, abrangendo exceções específicas de AMO e TOM.

Para ilustrar o tratamento de exceções no TOM, vamos examinar uma das exceções mais comuns, que é a Classe OperationException.

OperationException é gerada quando um usuário inicia uma operação no servidor do Analysis Services e o servidor falha ao executar uma operação, seja porque a ação foi ilegal ou devido a outro erro interno ou externo.

Quando lançado, o objeto OperationException conterá uma lista de erros XMLA retornados pelo servidor.

Observe que o servidor não aceitará alterações inválidas. Se isso ocorrer, reverter a árvore Modelo de volta para o último estado válido conhecido usando o Método UndoLocalChanges, corrija o modelo e reenvie.

Exemplo de código: tratar exceções

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

Próximas etapas

Outras exceções relevantes incluem o seguinte: