Manipulando avisos e casos que não causam exceções
O Reporting Services não lança exceções para avisos e para certos erros. Por exemplo, quando você usa o método CreateReport para publicar um novo relatório em um servidor de relatório, qualquer aviso que ocorrer será retornado como uma matriz de objetos de Warning. Esses avisos devem ser manipulados e exibidos para que a ação apropriada seja tomada.
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 If
Catch ex As SoapException
Console.WriteLine(ex.Detail("Message").InnerXml)
End Try
try
{
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);
}
Outro modo de manipular erros é avaliando os valores retornados de certos métodos. Por exemplo, o método de FindItems pode ser usado para procurar itens específicos no banco de dados do servidor de relatório. Se não for localizado nenhum item que corresponda aos critérios de pesquisa, será retornada uma matriz nula de objetos de CatalogItem. Avalie a matriz, verifique a existência de null e avise o usuário caso nenhum item tenha sido encontrado.
Consulte também