Использование свойства Detail для обработки определенных ошибок

В ходе дальнейшей классификации исключений службы Службы Reporting Services возвращают дополнительные сведения об ошибках в свойстве InnerText дочерних элементов свойства Detail исключения SOAP. Поскольку свойство Detail является объектом XmlNode, с помощью приведенного ниже кода можно обращаться к внутреннему тексту дочернего элемента Message.

Список всех доступных дочерних элементов в свойстве Detail см. в разделе Свойство Detail. Дополнительные сведения см. в разделе «Свойство Detail» в документации к пакету SDK для Microsoft .NET Framework.

Try
' Code for accessing the report server
Catch ex As SoapException
   ' The exception is a SOAP exception, so use
   ' the Detail property's Message element.
   Console.WriteLine(ex.Detail("Message").InnerXml)
End Try
try
{
   // Code for accessing the report server
}
catch (SoapException ex)
{
   // The exception is a SOAP exception, so use
   // the Detail property's Message element.
   Console.WriteLine(ex.Detail["Message"].InnerXml);
}
Try
' Code for accessing the report server
Catch ex As SoapException
   If ex.Detail("ErrorCode").InnerXml = "rsInvalidItemName" Then
   End If ' Perform an action based on the specific error code
End Try
try
{
   // Code for accessing the report server
}
catch (SoapException ex)
{
   if (ex.Detail["ErrorCode"].InnerXml == "rsInvalidItemName")
   {
      // Perform an action based on the specific error code
   }
}

Приведенная ниже строка кода выводит на консоль конкретный код ошибки, возвращенный в исключении SOAP. Можно также вычислить код ошибки и выполнить соответствующие действия.

Console.WriteLine(ex.Detail("ErrorCode").InnerXml)
Console.WriteLine(ex.Detail["ErrorCode"].InnerXml);

См. также

Справочник

Класс SoapException в службах Reporting Services

Таблица ошибок SoapException

Другие ресурсы

Знакомство с обработкой исключений в службах Reporting Services