You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
567 B
21 lines
567 B
import { RpaError } from "@/modules/rpa/errors";
|
|
|
|
/** Kernel step 子阶段 fail-fast 包装(定位非法结构来源) */
|
|
export async function runKernelSubStep<T>(
|
|
step: string,
|
|
subStep: string,
|
|
fn: () => Promise<T>,
|
|
): Promise<T> {
|
|
try {
|
|
return await fn();
|
|
} catch (error) {
|
|
const message = error instanceof Error ? error.message : String(error);
|
|
const stack = error instanceof Error ? error.stack : undefined;
|
|
throw new RpaError(
|
|
"STRUCT_CHANGE",
|
|
`[${step}/${subStep}] ${message}`,
|
|
{ retryable: true },
|
|
);
|
|
}
|
|
}
|