This commit is contained in:
ryan
2026-07-13 15:17:45 +08:00
parent 08e61ce833
commit e0eb4e5975
334 changed files with 17212 additions and 12321 deletions
+16 -15
View File
@@ -1,24 +1,24 @@
import { isCancelError } from '@/lib/services/core'
import { toast } from 'sonner'
import { isCancelError } from '@/lib/services/core';
import { toast } from 'sonner';
/**
* 错误处理选项
*/
interface HandleContextErrorOptions {
/** 是否显示 toast 提示 */
showToast?: boolean
showToast?: boolean;
/** 是否在控制台记录错误 */
logError?: boolean
logError?: boolean;
}
/**
* 统一处理 Context 中的错误
*
*
* @param error - 捕获的错误对象
* @param defaultMessage - 默认错误消息
* @param options - 错误处理选项
* @returns 标准化的 Error 对象
*
*
* @example
* ```typescript
* try {
@@ -35,27 +35,28 @@ interface HandleContextErrorOptions {
export function handleContextError(
error: unknown,
defaultMessage: string,
options: HandleContextErrorOptions = {}
options: HandleContextErrorOptions = {},
): Error {
const { showToast = false, logError = true } = options
const { showToast = false, logError = true } = options;
// 取消的请求不算错误
if (isCancelError(error)) {
return new Error('请求已取消')
return new Error('请求已取消');
}
const errorMessage = error instanceof Error ? error.message : defaultMessage
const errorObject = error instanceof Error ? error : new Error(defaultMessage)
const errorMessage = error instanceof Error ? error.message : defaultMessage;
const errorObject =
error instanceof Error ? error : new Error(defaultMessage);
if (logError) {
console.error(defaultMessage, error)
console.error(defaultMessage, error);
}
if (showToast) {
toast.error(defaultMessage, {
description: errorMessage
})
description: errorMessage,
});
}
return errorObject
return errorObject;
}