Condividi tramite


Gestione di avvisi e casi che non provocano eccezioni

In Reporting Services non vengono generate eccezioni per gli avvisi e per determinati errori. Quando, ad esempio, si utilizza il metodo CreateReport per pubblicare un nuovo report in un server di report, gli avvisi vengono restituiti come matrice di oggetti Warning. Questi avvisi devono essere gestiti e visualizzati in modo che sia possibile eseguire l'azione appropriata.

Try
   warnings = rs.CreateReport(name, parentFolder, False, definition, Nothing)

   If Not (warnings Is Nothing) Then
      Dim warning As Warning
      For Each warning In warnings
         Console.WriteLine(warning.Message)
      Next warning
   Else
      Console.WriteLine("Report {0} created successfully with no warnings", name)
   End If

Catch ex As SoapException
   Console.WriteLine(ex.Detail("Message").InnerXml)
End Try
try
{
   warnings = rs.CreateReport(name, parentFolder, false, definition, null);

   if (warnings != null)
   {
      foreach (Warning warning in warnings)
      {
         Console.WriteLine(warning.Message);
      }
   }
   else
      Console.WriteLine("Report {0} created successfully with no warnings", name);
}

catch (SoapException ex)
{
   Console.WriteLine(ex.Detail["Message"].InnerXml);
}

Un altro modo per gestire gli errori consiste nel valutare i valori restituiti di determinati metodi. È ad esempio possibile utilizzare il metodo FindItems per cercare elementi specifici nel database del server di report. Se non vengono trovati elementi corrispondenti ai criteri di ricerca, viene restituita una matrice Null di oggetti CatalogItem. È necessario valutare la matrice, verificare la presenza di null e comunicare all'utente se non sono stati trovati elementi.