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 => {
    ...
});