Обработка предупреждений и ситуаций, не вызывающих исключения
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 и в случае необнаружения искомых элементов известить об этом пользователя.
См. также