Compartir vía


Control de errores en la API de TOM (AMO-TOM)

Se aplica a: SQL Server 2016 y versiones posteriores analysis Services Azure Analysis Services Fabric/Power BI Premium

Una práctica habitual para bibliotecas administradas como Analysis Services Management Objects (AMO) tabular Object Model (TOM) es usar excepciones como mecanismo para notificar las condiciones de error al usuario.

Cuando se detecta un error en AMO-TOM, además de producir algunas excepciones estándar de .NET como ArgumentException y InvalidOperationException, TOM también puede producir varias excepciones específicas de TOM.

Las excepciones de TOM se derivan de la clase AmoException, que abarca las excepciones específicas de AMO y TOM.

Para ilustrar el control de excepciones en TOM, vamos a revisar una de las excepciones más comunes, que es OperationException Class.

OperationException se produce cuando un usuario inicia una operación en el servidor de Analysis Services y el servidor no puede realizar una operación, ya sea porque la acción no era válida o debido a otro error interno o externo.

Cuando se produce, el objeto OperationException contendrá una lista de errores XMLA devueltos por el servidor.

Tenga en cuenta que el servidor no aceptará los cambios que no son válidos. Si esto ocurre, vuelva a revertir el árbol modelo al último estado correcto conocido mediante el método UndoLocalChanges, corrija el modelo y vuelva a enviar.

Ejemplo de código: controlar excepciones

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

Pasos siguientes

Otras excepciones relevantes son las siguientes: