Ekleme kodunuzun sorunlarını giderme ve hatalarını ayıklama
Ekli analiz çözümü geliştirirken hatalarla karşılaşabilirsiniz. Bu durumda, hatanın neden oluştuğuna karar vermeniz gerekir.
error
Ekli analiz çözümünüzün hatalarını ayıklamak ve hatalarınıza neyin neden olduğunu daha iyi anlamak için olayı kullanın.
Nasıl işleyebileceğinizi bilmediğiniz bir hata varsa Stack Overflow'da istediğiniz zaman arama yapabilir veya soru sorabilirsiniz.
Hangi hatanın oluştuğuna bakın
Bir error
hata oluştuğunda bir olay tetikler. kullanarak element.on(...)
olayı dinleyebilir ve ardından bir olay işleyicisi ayarlayabilirsiniz.
report.on('error', (errorObject) => {
...
});
Olayları işleme hakkında daha fazla bilgi için bkz. Olayları işleme.
Olay error
bir IError
nesne döndürür:
interface IError {
message: string;
detailedMessage?: string;
errorCode?: string;
level?: TraceType;
technicalDetails?: ITechnicalDetails;
}
Örneğin, belirtecin süresi dolduğunda aşağıdaki hata nesnesini alırsınız:
{
"message": "TokenExpired",
"detailedMessage": "Access token has expired, resubmit with a new access token",
"errorCode": "403"
}
Erişim belirtecini yenileme hakkında bilgi için bkz. Erişim belirtecini yenileme.
Sorun giderme
Nesneyi aldıktan IError
sonra, IError nesne tablosuyla eklenmiş uygulamanızın sorunlarını giderme bölümünde aramayı karşılaştırın ve hatanın olası nedenlerini bulun.
Not
Power BI kullanıcıları (kuruluşunuz için ekleme olarak da bilinir) ve Power BI kullanıcısı olmayanlar (müşterileriniz için ekleme olarak da bilinir) için yaygın hatalar tablosu vardır.
Tarayıcının konsolunda hata ayıklama
Ayrıca tarayıcının konsolunda uygulamanızın hatalarını ayıklamanız da yeterlidir. Örneğin, ekleme örneğine sahip olduktan sonra aşağıdaki kod parçacığını girin:
// 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 hatalarını yakalama
İstemci API'lerinin çoğu Promise döndüren zaman uyumsuz işlevlerdir.
Deseni async
/await
kullanıyorsanız, olası hatayı yakalamak için kullanmanız try
/catch
gerekir. Örnek:
try {
...
// Set a new access token
await report.setAccessToken(newAccessToken.token);
} catch (e) {
...
}
Deseni async
/await
kullanmıyorsanız, olası hatayı yakalamak için işlevini kullanabilirsiniz.catch
Örnek:
// Set a new access token
report.setAccessToken(newAccessToken.token).catch(e => {
...
});