错误边界模式:用Symbol和Proxy构建防御性API
使用Symbol标记内部方法,Proxy拦截错误传播,实现健壮的SDK设计。 · 难度:入门 · +10XP
错误边界模式:用Symbol和Proxy构建防御性API
大型应用需要优雅的错误隔离。本教程教你利用Symbol创建私有属性,防止外部访问;再用Proxy包装对象,捕获所有方法调用时的异常,统一上报而不崩溃。这种模式类似React Error Boundary,但适用于普通对象。同时展示如何通过error事件回调让用户自定义处理。
const INTERNAL = Symbol('internal');
class SafeSDK {
constructor() {
this[INTERNAL] = { apiKey: 'secret' };
return new Proxy(this, {
get(target, prop, receiver) {
const val = Reflect.get(target, prop, receiver);
if (typeof val === 'function') {
return function(...args) {
try { return val.apply(target, args); }
catch(e) { console.error('SDK Error:', e); }
};
}
return val;
}
});
}
riskyMethod() { throw new Error('fail'); }
}