Поделиться через


Обработка предупреждений и ситуаций, не вызывающих исключения

В службах Службы Reporting Services не формируются исключения применительно к предупреждениям и некоторым ошибкам. Например, при использовании метода CreateCatalogItem с целью публикации нового отчета на сервере отчетов все возникающие предупреждения возвращаются в виде массива объектов Warning. Эти предупреждения должны быть обработаны и отображены, чтобы можно было осуществлять соответствующие действия.

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

Еще один способ обработки ошибок состоит в обработке возвращаемых значений определенных методов. К примеру, метод FindItems можно использовать для поиска определенных элементов в базе данных сервера отчетов. Если элементы, соответствующие критериям поиска, не обнаружены, возвращается пустой массив объектов CatalogItem. Необходимо обработать этот массив, проверить его на наличие значений null, а если не обнаружены элементы, известить об этом пользователя.