# web开发者使用uni-app x注意 ## 崩溃 强类型语言,在开发阶段有各种类型检查,避免运行期的错误。 但其实,强类型语言的运行期容错很差,需要大量手写的try catch,否则很容易崩溃。 比如给一个number类型的变量赋值一个字符串,在开发阶段会检查,编译不允许通过。 ```ts let a:number = "abc" //报错,无法编译 ``` 但如果从网络动态下载了一个数据,可能会逃过编译器的校验,如果在运行时发生了给number变量赋值或as或parseInt字符串等类型不匹配行为,App会直接崩溃。 这是原生开发和web开发非常大的不同。 uvue框架内部做了一些错误拦截,减少崩溃,报错会触发app的onError。 目前框架支持捕获错误的来源有(仅限同步代码): - 组件渲染器(template模板代码) - 事件处理器(template模板代码中监听的事件) - 生命周期钩子(应用、页面、组件的生命周期) - 侦听器(watch监听) 除了以上代码,其他地方如果代码写不对就会崩溃。开发者务必注意,在可能不安全的地方要try。