import { logger } from '../log/logger'; /** * 设置全局错误处理监听器 * 只在浏览器环境中生效 */ export const setupGlobalErrorHandlers = () => { // 只在浏览器环境中设置全局错误处理 if (typeof window === 'undefined') return; // 处理未捕获的JavaScript错误和资源加载错误 window.addEventListener('error', (event) => { const errorInfo = { type: 'uncaught_error', message: event.message, filename: event.filename, lineno: event.lineno, colno: event.colno, stack: event.error?.stack, timestamp: new Date().toISOString() }; logger.error('全局错误捕获', errorInfo); // 可以选择是否阻止默认错误处理 // event.preventDefault(); }); // 处理未处理的Promise拒绝 window.addEventListener('unhandledrejection', (event) => { const errorInfo = { type: 'unhandled_rejection', reason: event.reason, timestamp: new Date().toISOString() }; logger.error('未处理的Promise拒绝', errorInfo); // 可以选择是否阻止默认错误处理 // event.preventDefault(); }); logger.log('全局错误处理监听器已设置'); };