有没有办法拦截类型错误并返回自己的值? 考虑的情景: 我有我自己的lib,在中未定义或为空的情况下返回一定的价值拦截类型错误
if (typeof value === 'undefined' || value === null) return Nothing;
因此,如果您使用此
mylib(null) // -> Nothing
mylib(1) // -> Just(1)
这是所有好的,但如果我通过在物体像这样的不存在的财产
var a = {};
a.b = {};
mylib(a.b.c.d) // -> c is not an Object and does not have property d
// Uncaught TypeError: Cannot read property 'd' of undefined
所以我想要的是拦截类型错误并返回Nothing,而我想在native JS和我不想传入属性来检查数组或分隔字符串或其他东西。到目前为止,我没有找到办法做到这一点。
我看到了一些重新定义window.onerror()的例子,但是想知道是否有一种优雅的方式来动态地防止类型错误。
你为什么要这么做?如果它会为所有事情返回相同的错误,则无法进行调试。 – putvande
不,我只想要调用mylib() – vodich
这个错误发生在调用mylib()之前。那么你将如何拦截它? :) –