feat(errors): add centralized exception handling

This commit is contained in:
2026-07-03 12:55:45 +08:00
parent e852fb62e9
commit 65d972fbb4
20 changed files with 492 additions and 70 deletions
+15 -22
View File
@@ -50,7 +50,7 @@ export class SpAsyncUtil {
if (value.length === 0) return Result.ok(null);
return Result.ok(value);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -62,7 +62,7 @@ export class SpAsyncUtil {
await SpAsyncUtil._storage.setItem(key, value);
return Result.ok(undefined);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -74,7 +74,7 @@ export class SpAsyncUtil {
if (typeof value !== "number" || !Number.isFinite(value)) return Result.ok(null);
return Result.ok(Math.trunc(value));
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -83,7 +83,7 @@ export class SpAsyncUtil {
await SpAsyncUtil._storage.setItem(key, value);
return Result.ok(undefined);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -95,7 +95,7 @@ export class SpAsyncUtil {
if (typeof value !== "number" || !Number.isFinite(value)) return Result.ok(null);
return Result.ok(value);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -104,7 +104,7 @@ export class SpAsyncUtil {
await SpAsyncUtil._storage.setItem(key, value);
return Result.ok(undefined);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -116,7 +116,7 @@ export class SpAsyncUtil {
if (typeof value !== "boolean") return Result.ok(null);
return Result.ok(value);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -125,7 +125,7 @@ export class SpAsyncUtil {
await SpAsyncUtil._storage.setItem(key, value);
return Result.ok(undefined);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -138,7 +138,7 @@ export class SpAsyncUtil {
if (!value.every((v) => typeof v === "string")) return Result.ok(null);
return Result.ok(value);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -150,7 +150,7 @@ export class SpAsyncUtil {
await SpAsyncUtil._storage.setItem(key, value);
return Result.ok(undefined);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -166,7 +166,7 @@ export class SpAsyncUtil {
const parsed = schema.parse(json);
return Result.ok(parsed);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -180,7 +180,7 @@ export class SpAsyncUtil {
await SpAsyncUtil._storage.setItem(key, JSON.stringify(validated));
return Result.ok(undefined);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -190,7 +190,7 @@ export class SpAsyncUtil {
await SpAsyncUtil._storage.removeItem(key);
return Result.ok(undefined);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -199,7 +199,7 @@ export class SpAsyncUtil {
await SpAsyncUtil._storage.clear();
return Result.ok(undefined);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
@@ -208,18 +208,11 @@ export class SpAsyncUtil {
const exists = await SpAsyncUtil._storage.hasItem(key);
return Result.ok(exists);
} catch (e) {
return Result.err(toError(e));
return Result.err(e);
}
}
}
// ============================================================
// 内部辅助
// ============================================================
function toError(e: unknown): Error {
return e instanceof Error ? e : new Error(String(e));
}
function createDefaultStorage(): Storage {
if (typeof window === "undefined") {
return createStorage({ driver: memoryDriver() });