【发布时间】:2026-02-23 20:40:02
【问题描述】:
有没有人知道如何对延迟加载的 javascript 进行错误处理?我正在使用一种调用 ajax 请求并在全局范围内对代码进行评估的方法。当发生运行时错误时,它会将文件名作为我的延迟加载脚本吐出,行号是错误行加上加载脚本中我的 eval 的行号。这不会那么糟糕,除非所有的 javascript 文件都被合并到网站各个部分的模块中。围绕 javascript 文件本身的 try catch 不会捕获函数的运行时错误。有任何想法吗? Window.onerror 没有提供正确的文件名,所以它是不可能的。我需要在它被击中之前抓住它。
我在想也许我可以以编程方式在 eval'd 代码中的所有函数周围包含 try catch(这很难看),但由于它是在窗口级别完成的,我不确定如何访问 eval'd 代码具体和动态。当然,如果 javascript 是一个名为“Bob”的对象,我可以访问 window.Bob,但我需要动态进行。
【问题讨论】:
-
也许我遗漏了一些东西,但为什么你的 JavaScript 会抛出运行时错误?就算是,也不能在调用函数之前验证函数参数吗?似乎处理运行时错误的最佳方法是不允许它们发生。
-
并不是存在运行时错误,而是在发生错误时,我想指定为了调试目的而抛出的内容。该错误错误地表明加载脚本是问题所在。我正在寻找正确的文件名/行号。
标签: javascript exception-handling error-handling lazy-loading ondemand