my-uniapp-tools
Version:
一个简洁稳定的 uni-app 开发工具库,提供剪贴板、本地存储、导航、系统信息等常用功能
88 lines (87 loc) • 2.99 kB
TypeScript
/**
* 统一错误处理机制
*/
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;