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

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

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 IfCatch ex As SoapException   Console.WriteLine(ex.Detail("Message").InnerXml)End Trytry{   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);}

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