UNPKG

my-uniapp-tools

Version:

一个简洁稳定的 uni-app 开发工具库,提供剪贴板、本地存储、导航、系统信息等常用功能

88 lines (87 loc) 2.99 kB
/** * 统一错误处理机制 */ export { VERSION } from '../version'; /** * 错误信息接口 */ export interface ErrorInfo { /** 错误代码 */ code: string; /** 错误消息 */ message: string; /** 所属模块 */ module: string; /** 错误发生时间戳 */ timestamp: number; /** 错误堆栈信息 */ stack?: string; } export type ErrorCallback = (error: ErrorInfo) => void; export type ErrorUnsubscribe = () => void; /** * UniApp工具库自定义错误类 * 继承自原生Error类,添加了错误代码、模块和时间戳信息 */ export declare class UniAppToolsError extends Error { /** 错误代码 */ code: string; /** 所属模块 */ module: string; /** 错误发生时间戳 */ timestamp: number; /** * 构造函数 * @param code 错误代码 * @param message 错误消息 * @param module 所属模块 */ constructor(code: string, message: string, module: string); } /** * 全局错误处理器 * 使用单例模式,提供统一的错误处理和回调机制 */ export declare class ErrorHandler { /** 单例实例 */ private static instance; /** 错误回调函数列表 */ private errorCallbacks; /** * 获取错误处理器单例实例 * @returns 错误处理器实例 */ static getInstance(): ErrorHandler; /** * 注册错误回调函数 * 当发生错误时,会调用所有注册的回调函数 * @param callback 错误回调函数 */ onError(callback: ErrorCallback): ErrorUnsubscribe; /** * 处理错误 * 将错误信息标准化并执行所有注册的回调函数 * @param error 错误对象 * @param module 发生错误的模块名称 */ handleError(error: unknown, module: string): void; /** * 创建模块专用的错误处理函数 * 返回一个绑定了特定模块名的错误处理函数 * @param moduleName 模块名称 * @returns 模块专用的错误处理函数 */ createModuleErrorHandler(moduleName: string): (code: string, message: string, originalError?: unknown) => UniAppToolsError; } /** * 异步操作包装器,统一错误处理 * 自动捕获异步操作中的错误并进行统一处理 * @param operation 要执行的异步操作 * @param moduleName 模块名称 * @param errorCode 错误代码,默认为'ASYNC_ERROR' * @returns 操作结果,如果发生错误则返回null */ export declare function safeAsync<T>(operation: () => Promise<T>, moduleName: string, errorCode?: string): Promise<T | null>; export declare function safeSync<T>(operation: () => T, moduleName: string, errorCode?: string): T | null; export declare function safeSync<T>(operation: () => T, moduleName: string, errorCode: string | undefined, defaultValue: T): T; export declare function safeSync<T>(operation: () => T, moduleName: string, errorCode: string | undefined, defaultValue: null): T | null;