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