例外が発生しない警告および状況の処理
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);
}
もう 1 つのエラー処理方法は、特定のメソッドの戻り値を評価することです。たとえば、FindItems メソッドを使用して、レポート サーバー データベースの特定のアイテムを検索できます。検索条件に一致するアイテムが見つからない場合、CatalogItem オブジェクトの null 配列が返されます。その配列を評価し、null を調べて、アイテムが見つからなかった場合はユーザーに知らせる必要があります。