Устранение неполадок и отладка кода внедрения
При разработке внедренного решения аналитики могут возникнуть ошибки. В этом случае необходимо выяснить, почему произошла ошибка.
Используйте событие error
для отладки решения встроенной аналитики и лучше понять, что вызвало ошибки.
Если нет ошибки, которую вы не знаете, как обрабатывать, вы всегда можете искать или задавать вопрос о Stack Overflow.
Поиск ошибки
Событие error
возникает при возникновении ошибки. Вы можете прослушивать событие с помощью element.on(...)
, а затем задать обработчик событий.
report.on('error', (errorObject) => {
...
});
Дополнительные сведения об обработке событий см. в разделе Обработка событий.
Событие error
возвращает объект IError
:
interface IError {
message: string;
detailedMessage?: string;
errorCode?: string;
level?: TraceType;
technicalDetails?: ITechnicalDetails;
}
Например, когда срок действия маркера истекает, вы получите следующий объект ошибки:
{
"message": "TokenExpired",
"detailedMessage": "Access token has expired, resubmit with a new access token",
"errorCode": "403"
}
Сведения об обновлении маркера доступа см. в статье Обновление маркера доступа.
Устранение неполадок
После получения объекта IError
сравните его поиск в Устранение неполадок внедренного приложения с помощью таблицы объекта IError и найдите возможные причины сбоя.
Заметка
Существует таблицу распространенных ошибокдля пользователей Power BI (также известных как внедрение для вашей организации), а для пользователей, не являющихся Power BI, (также известных как внедрение для клиентов).
Отладка в консоли браузера
Вы также можете просто отладить приложение в консоли браузера. Например, введите следующий фрагмент кода после создания экземпляра внедрения:
// Add a listener to 'error' events
report.on('error', (errorObject) => {
const err = errorObject.detail;
// Print the error to console
console.log(`Error occurred: ${err.message}. Detailed message: ${err.detailedMessage}`);
console.log(err);
});
Перехват ошибок API
Большинство клиентских API
Если вы используете шаблон async
/await
, следует использовать try
/catch
для перехвата потенциальной ошибки. Например:
try {
...
// Set a new access token
await report.setAccessToken(newAccessToken.token);
} catch (e) {
...
}
Если вы не используете шаблон async
/await
, можно использовать функцию catch
для перехвата потенциальной ошибки. Например:
// Set a new access token
report.setAccessToken(newAccessToken.token).catch(e => {
...
});