Rozwiązywanie problemów i debugowanie kodu osadzania
Podczas tworzenia osadzonego rozwiązania analitycznego mogą wystąpić błędy. W takim przypadku należy ustalić, dlaczego wystąpił błąd.
Użyj zdarzenia error
, aby debugować rozwiązanie osadzonej analizy i lepiej zrozumieć przyczyny błędów.
Jeśli wystąpi błąd, nie wiesz, jak obsłużyć obsługę, zawsze możesz wyszukać lub zadać pytanie dotyczące Stack Overflow.
Znajdowanie błędu, który wystąpił
Zdarzenie error
jest uruchamiane po wystąpieniu błędu. Możesz nasłuchiwać zdarzenia przy użyciu element.on(...)
, a następnie ustawić procedurę obsługi zdarzeń.
report.on('error', (errorObject) => {
...
});
Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Jak obsługiwać zdarzenia.
Zdarzenie error
zwraca obiekt IError
:
interface IError {
message: string;
detailedMessage?: string;
errorCode?: string;
level?: TraceType;
technicalDetails?: ITechnicalDetails;
}
Na przykład po wygaśnięciu tokenu zostanie wyświetlony następujący obiekt błędu:
{
"message": "TokenExpired",
"detailedMessage": "Access token has expired, resubmit with a new access token",
"errorCode": "403"
}
Aby uzyskać informacje na temat odświeżania tokenu dostępu, zobacz Odśwież token dostępu.
Rozwiązywanie problemów
Po uzyskaniu obiektu IError
porównaj go w Rozwiązywanie problemów z osadzoną aplikacją za pomocą tabeli obiektu IError i znajdź możliwe przyczyny błędu.
Nuta
Istnieje tabela typowych błędówdla użytkowników usługi Power BI (znana również jako osadzanie dla organizacji) i dla użytkowników innych niż użytkownicy usługi Power BI (znana również jako osadzanie dla klientów).
Debugowanie w konsoli przeglądarki
Możesz również po prostu debugować aplikację w konsoli przeglądarki. Na przykład wprowadź następujący fragment kodu po utworzeniu wystąpienia osadzania:
// 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);
});
Przechwytywanie błędów interfejsów API
Większość interfejsów API klienta jest asynchronicznych funkcji, które zwracają Promise.
Jeśli używasz wzorca async
/await
, należy użyć try
/catch
, aby przechwycić potencjalny błąd. Na przykład:
try {
...
// Set a new access token
await report.setAccessToken(newAccessToken.token);
} catch (e) {
...
}
Jeśli nie używasz wzorca async
/await
, możesz użyć funkcji catch
, aby przechwycić potencjalny błąd. Na przykład:
// Set a new access token
report.setAccessToken(newAccessToken.token).catch(e => {
...
});