포함 코드 문제 해결 및 디버그
임베디드 분석 솔루션을 개발할 때 오류가 발생할 수 있습니다. 이 경우 오류가 발생한 이유를 파악해야 합니다.
이 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"
}
액세스 토큰을 새로 고치는 방법에 대한 자세한 내용은 액세스 토큰 새로 고침을 참조하세요.
문제 해결
개체를 IError
획득한 후 포함된 애플리케이션 문제 해결에서 조회를 IError 개체 테이블과 비교하고 오류의 가능한 원인을 찾습니다.
참고
Power BI 사용자(조직에 대한 포함이라고도 함) 및 비 Power BI 사용자(고객을 위한 포함이라고도 함)에 대한일반적인 오류 테이블이 있습니다.
브라우저의 콘솔에서 디버그
브라우저의 콘솔에서 앱을 디버그하기만 하면 됩니다. 예를 들어 embed 인스턴스가 있으면 다음 코드 조각을 입력합니다.
// 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 오류 catch
대부분의 클라이언트 API는 Promise를 반환하는 비동기 함수입니다.
패턴을 사용하는 async
/await
경우 잠재적인 오류를 catch하는 데 사용해야 try
/catch
합니다. 예를 들면 다음과 같습니다.
try {
...
// Set a new access token
await report.setAccessToken(newAccessToken.token);
} catch (e) {
...
}
패턴을 사용하지 않는 경우 함수를 async
/await
catch
사용하여 잠재적인 오류를 catch할 수 있습니다. 예를 들면 다음과 같습니다.
// Set a new access token
report.setAccessToken(newAccessToken.token).catch(e => {
...
});