Udostępnij za pośrednictwem


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