我有一个HTML5工作程序,它使用postMessage
发送值。有时(例如,如果结果是一个函数),代码将引发异常:
DataCloneError:无法克隆对象。
所以我试图捕捉异常:
try {
self.postMessage (result);
}
catch (ex) {
if (ex instanceof DataCloneError)
self.postMessage (result.toString());
else
throw ex;
}
但是这会引发以下异常:
ReferenceError:未定义DataCloneError
我很困惑。如何捕捉DataCloneError
?
您收到的错误是DOMException接口的一个实例。
要知道它是哪个DOMException,可以检查其name
属性。DATA_CLONE_ERROR之一是"DataCloneError"
。
try {
postMessage( () => {} , '*' );
}
catch( err ) {
console.log( err.name === "DataCloneError" );
}