mapToSwitchError function

ClassSwitchError mapToSwitchError(
  1. Object e, {
  2. StackTrace? stackTrace,
})

将任意异常映射为 ClassSwitchError。

  • 已是 ClassSwitchError 直接透传
  • StateError(业务前置校验失败)→ 不可重试
  • 其它异常 → 默认可重试

Implementation

ClassSwitchError mapToSwitchError(Object e, {StackTrace? stackTrace}) {
  if (e is ClassSwitchError) return e;

  if (e is StateError) {
    return ClassSwitchError(
      code: -1,
      message: e.message,
      retryable: false,
      cause: e,
    );
  }

  return ClassSwitchError(
    code: -1,
    message: e.toString(),
    retryable: true,
    cause: e,
  );
}