Problembehandlung und Debuggen des Einbettungscodes
Beim Entwickeln einer eingebetteten Analyselösung treten möglicherweise Fehler auf. In diesem Fall müssen Sie herausfinden, warum der Fehler aufgetreten ist.
Verwenden Sie das error
-Ereignis, um Ihre eingebettete Analyselösung zu debuggen und besser zu verstehen, was Ihre Fehler verursacht hat.
Wenn ein Fehler vorliegt, den Sie nicht kennen, können Sie jederzeit nach Stack Overflow-suchen oder eine Frage stellen.
Ermitteln des aufgetretenen Fehlers
Ein error
Ereignis wird ausgelöst, wenn ein Fehler auftritt. Sie können mit element.on(...)
auf das Ereignis lauschen und dann einen Ereignishandler festlegen.
report.on('error', (errorObject) => {
...
});
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.
Das error
-Ereignis gibt ein IError
-Objekt zurück:
interface IError {
message: string;
detailedMessage?: string;
errorCode?: string;
level?: TraceType;
technicalDetails?: ITechnicalDetails;
}
Wenn das Token beispielsweise abläuft, erhalten Sie das folgende Fehlerobjekt:
{
"message": "TokenExpired",
"detailedMessage": "Access token has expired, resubmit with a new access token",
"errorCode": "403"
}
Informationen zum Aktualisieren des Zugriffstokens finden Sie unter Aktualisieren des Zugriffstokens.
Fehlerbehebung
Nachdem Sie das IError
-Objekt erworben haben, vergleichen Sie es im Problembehandlung ihrer eingebetteten Anwendung mit dem IError-Objekt Tabelle, und suchen Sie die möglichen Ursachen des Fehlers.
Anmerkung
Es gibt eine allgemeine Fehlertabellefür Power BI-Benutzer (auch bekannt als Einbettung für Ihre Organisation) und für Nicht-Power BI-Benutzer (auch bekannt als Einbettung für Ihre Kunden).
Debuggen in der Konsole des Browsers
Sie können Ihre App auch einfach in der Konsole des Browsers debuggen. Geben Sie beispielsweise den folgenden Codeausschnitt ein, nachdem Sie über eine Einbettungsinstanz verfügen:
// 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);
});
Erfassen der APIs-Fehler
Die meisten Client-APIs sind asynchronen Funktionen, die eine Promise-zurückgeben.
Wenn Sie das async
/await
Muster verwenden, sollten Sie try
/catch
verwenden, um potenzielle Fehler zu erfassen. Zum Beispiel:
try {
...
// Set a new access token
await report.setAccessToken(newAccessToken.token);
} catch (e) {
...
}
Wenn Sie das async
/await
Muster nicht verwenden, können Sie die catch
-Funktion verwenden, um potenzielle Fehler abzufangen. Zum Beispiel:
// Set a new access token
report.setAccessToken(newAccessToken.token).catch(e => {
...
});