【问题标题】:Ubreakable Javascript坚不可摧的Javascript
【发布时间】:2016-03-28 16:03:04
【问题描述】:

我想知道是否有一种方法可以保证无论网站上出现任何 JS 错误,某个 JS 代码都会始终运行。

我想制作一个日志脚本,在管理页面中记录我的用户的活动,因此如果出现问题,我可以轻松地重新创建导致错误的工作流。

那么有什么办法吗?

非常感谢。

【问题讨论】:

  • 使用 try{}catch(function(error){})。您将在 catch 中有错误实例(每当错误出现时)您可以将该错误与 console.dir(error);
  • 我们谈论的是在服务器还是在客户端运行的 javascript?

标签: javascript testing logging error-handling syntax-error


【解决方案1】:

对于任何语言或任何程序,您都无法保证。

拥有无错误程序的唯一方法是通过彻底测试来创建一个。

  1. 为与您的用户相关的所有可能性创建单元测试用例 故事。
  2. 使用 try...catch mdn link

  3. Console.log

就我在 JavaScript 中的工作而言,这些是确保您的程序运行的方法,但对于浏览器,这有时看起来很棘手,因为一切都在用户端,您只能通过执行健壮的编码来控制。

编辑:通过此评论,我并不打算传达测试是实现无错误代码的唯一方法,您应该知道这一点,但仍然遵循 OOP 的最佳实践。 这都是据我所知。

【讨论】:

  • “拥有无错误程序的唯一方法是通过彻底测试来创建一个”所以 Donald Knuth 错了吗?
  • 我也可能是错的,但这是我这些年来在使用 javaScript 编码时学到的东西。无论如何,如果你有什么要纠正我的,我很想学习:)
  • 归纳和穷举是(IME)应用于代码的最常见的证明。我并不是说不需要测试,也不是说测试可能比正式证明更有效。事实上,形式证明并不总是适用于面向对象的代码。但是,“彻底测试”是拥有无错误程序的唯一方法的笼统声明是完全错误的。你的工具包中还应该有其他工具来减少错误注入——但我不是来教 CompSci 的。
  • 我的陈述被错误地接受了。我了解编码的原则,并且确实了解如何编写和实施良好的编码技术。我的意图是任何程序的最后一站都是测试,我相信这是真的。休息感谢您深思熟虑的评论和分享。
  • 我的目标是创建一个脚本来记录任何用户活动,直到错误发生,这样我就可以更轻松地调试,并使用完全相同的操作流程测试修复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 2019-03-28
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 2017-06-25
相关资源
最近更新 更多