首页 > 解决方案 > 如何避免在 Svelte 中冻结整个应用程序的异常?

问题描述

我想知道是否有办法避免冻结整个 Svelte 应用程序的异常?

我目前正在使用 Svelte v3.12.0,看起来如果有一个未捕获的异常,整个前端应用程序就会冻结并且它不会从错误中恢复。我不认为在 try...catch... 中包装每个组件中的每一行代码是一个很好的解决方案。

标签: svelte

解决方案


没有办法这样做,一般来说,异常会停止所有进一步的脚本执行。

但请记住,异常应该是异常的,并且表明出现了意外错误。如果您希望发生某些错误,则它们不再是异常,应该进行处理(如果您对抛出异常的部分几乎没有控制权,有时这确实需要 try-catch)。将所有内容都包装在 try-catch 块中,这表明您的代码库中有一些非常脆弱的东西。

如果您得到的异常主要是由 api 返回引起的,请考虑.catch()在您的 fetch 承诺上加上一个并优雅地处理失败的 api。


推荐阅读