保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 ab4e8129d5c94ff96e6c85d0d2b66a04a052b4e5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { errorObject } from './errorObject';
 
let tryCatchTarget: Function;
 
function tryCatcher(this: any): any {
  errorObject.e = undefined;
  try {
    return tryCatchTarget.apply(this, arguments);
  } catch (e) {
    errorObject.e = e;
    return errorObject;
  } finally {
    tryCatchTarget = undefined;
  }
}
 
export function tryCatch<T extends Function>(fn: T): T {
  tryCatchTarget = fn;
  return <any>tryCatcher;
}