예외를 발생시키지 않는 경고 및 사례 처리

Reporting Services는 경고 및 특정 오류에 대한 예외를 throw하지 않습니다. 예를 들어 이 메서드를 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 배열이 반환됩니다. 배열을 평가하고 null에 대해 검사 항목을 찾을 수 없는지 사용자에게 알려야 합니다.

CatalogItem
Reporting Services의 예외 관리 소개
Reporting Services SoapException 클래스