对嵌入代码进行故障排除和调试
开发嵌入式分析解决方案时,可能会遇到错误。 发生这种情况时,需要找出错误发生的原因。
使用 error
事件调试嵌入式分析解决方案,并更好地了解导致错误的原因。
如果不知道如何处理错误,始终可以在 Stack Overflow上搜索或提问。
查找发生错误
发生错误时触发 error
事件。 可以使用 element.on(...)
侦听事件,然后设置事件处理程序。
report.on('error', (errorObject) => {
...
});
有关处理事件的详细信息,请参阅 如何处理事件。
error
事件返回 IError
对象:
interface IError {
message: string;
detailedMessage?: string;
errorCode?: string;
level?: TraceType;
technicalDetails?: ITechnicalDetails;
}
例如,当令牌过期时,将收到以下错误对象:
{
"message": "TokenExpired",
"detailedMessage": "Access token has expired, resubmit with a new access token",
"errorCode": "403"
}
有关刷新访问令牌的信息,请参阅 刷新访问令牌。
故障 排除
获取
注意
Power BI 用户有一个
在浏览器的控制台中调试
还可以在浏览器的控制台中调试应用。 例如,在具有嵌入实例后输入以下代码片段:
// 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 错误
大多数客户端 API 都是 异步 函数,这些函数返回 Promise。
如果使用 async
/await
模式,则应使用 try
/catch
来捕获潜在的错误。 例如:
try {
...
// Set a new access token
await report.setAccessToken(newAccessToken.token);
} catch (e) {
...
}
如果不使用 async
/await
模式,则可以使用 catch
函数捕获潜在的错误。 例如:
// Set a new access token
report.setAccessToken(newAccessToken.token).catch(e => {
...
});