Gestire avvisi e casi che non causano eccezioni

Reporting Services non genera eccezioni per gli avvisi e alcuni errori. Quando, ad esempio, si utilizza il metodo CreateCatalogItem 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  
   rs.CreateCatalogItem(name, parentFolder, False, definition, Nothing, warnings)  
  
   If Not (warnings.Length = 0) 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  
{  
   rs.CreateCatalogItem("Report", name, parentFolder, false, definition, null, out warnings);  
  
   if (warnings.Length != 0)  
   {  
      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.

CatalogItem
Introduzione alla gestione delle eccezioni in Reporting Services
Classe SoapException di Reporting Services