【发布时间】:2020-03-06 19:59:33
【问题描述】:
我想知道是否有办法避免异常冻结整个 Svelte 应用程序?
我目前正在使用 Svelte v3.12.0,看起来如果有未捕获的异常,整个前端应用程序就会冻结并且无法从错误中恢复。我不认为在 try...catch... 中包装每个组件中的每一行代码是一个很好的解决方案。
【问题讨论】:
标签: svelte
我想知道是否有办法避免异常冻结整个 Svelte 应用程序?
我目前正在使用 Svelte v3.12.0,看起来如果有未捕获的异常,整个前端应用程序就会冻结并且无法从错误中恢复。我不认为在 try...catch... 中包装每个组件中的每一行代码是一个很好的解决方案。
【问题讨论】:
标签: svelte
没有办法这样做,一般来说,异常会停止所有进一步的脚本执行。
但请记住,异常应该是异常的,并且表明出现了意外错误。如果您希望发生某些错误,它们不再是异常,应该进行处理(如果您对抛出异常的部分几乎没有控制权,有时这确实需要 try-catch)。将所有内容都包装在 try-catch 块中,这表明您的代码库中有一些非常脆弱的东西。
如果您遇到的异常主要是由 api 返回引起的,请考虑在您的 fetch promise 上加上 .catch() 并优雅地处理失败的 api。
【讨论】: