Обработка ошибок в API TOM (AMO-TOM)
Применимо к: SQL Server 2016 и более поздних версий Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
Распространенной практикой для управляемых библиотек, таких как табличная объектная модель (TOM) служб Analysis Services Management Objects (AMO), является использование исключений в качестве механизма для сообщения пользователю об ошибках.
При обнаружении ошибки в AMO-TOM, помимо создания нескольких стандартных исключений .NET, таких как ArgumentException и InvalidOperationException, TOM также может выдавать несколько исключений, относящихся к TOM.
Исключения TOM являются производными от класса AmoException, охватывающим исключения AMO и TOM.
Чтобы проиллюстрировать обработку исключений в TOM, давайте рассмотрим одно из наиболее распространенных исключений— класс OperationException.
Исключение OperationException возникает, когда пользователь инициирует операцию на сервере служб Analysis Services, а серверу не удается выполнить операцию либо из-за того, что действие было незаконным, либо из-за другой внутренней или внешней ошибки.
При возникновении объекта OperationException будет содержаться список ошибок XMLA, возвращаемых сервером.
Обратите внимание, что сервер не будет принимать недопустимые изменения. В этом случае отменить изменения дерево модели обратно в последнее известное работоспособное состояние с помощью метода UndoLocalChanges, исправьте модель, а затем повторно отправьте.
Пример кода: обработка исключений
try
{
// Change the Model, for example create a table.
// …
model.saveChanges();
}
catch(operationException ex)
{
foreach(XmlaError err in ex.Results.OfType<XmlaError>().cast<XmlaError>())
{
Console.WriteLine("Error returned from the server:" + err.Messsage );
}
}
Дальнейшие действия
К другим соответствующим исключениям относятся следующие: