跳到主要内容

错误处理

该库会尽最大努力指导您纠正使用 API 时可能犯的任何错误。 您可以指定如何响应这些错误(如果需要)。

tsx
const App = () => {
const onReportPrepared = useCallback((report: RenderPassReport) => {
monorail.produce(convertReportToMonorailObject(report));
}, []);
const errorHandler = useCallback((error: Error) => {
// Do stuff with error
}, []);
return (
<PerformanceProfiler onReportPrepared={onReportPrepared} errorHandler={errorHandler}>
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Screen1" component={Screen1} />
<Stack.Screen name="Screen2" component={Screen2} />
</Stack.Navigator>
</NavigationContainer>
</PerformanceProfiler>
);
};
tsx
const App = () => {
const onReportPrepared = useCallback((report: RenderPassReport) => {
monorail.produce(convertReportToMonorailObject(report));
}, []);
const errorHandler = useCallback((error: Error) => {
// Do stuff with error
}, []);
return (
<PerformanceProfiler onReportPrepared={onReportPrepared} errorHandler={errorHandler}>
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Screen1" component={Screen1} />
<Stack.Screen name="Screen2" component={Screen2} />
</Stack.Navigator>
</NavigationContainer>
</PerformanceProfiler>
);
};

渲染看门狗定时器被触发,或者当该库遇到任何意外错误时(尽最大努力),也会调用此errorHandler

大多数情况下,error 参数的类型将为 PerformanceProfilerError,除非确实是无法预见的错误。在后一种情况下,请提交错误报告。PerformanceProfilerError 还包含一个 destinationScreen,这可能有助于您更好地处理这些错误。

默认情况下,所有错误都会记录到控制台,包括那些很可能是库代码中的错误。内部库错误不会传递给 errorHandler。这意味着传递给 errorHandler 回调的错误很可能是由于不正确地使用该库造成的,我们建议通过提供自定义的 errorHandler 将它们报告给您选择的错误报告服务。