错误处理
该库会尽最大努力指导您纠正使用 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
将它们报告给您选择的错误报告服务。