# web开发者使用uni-app x注意

## 崩溃

强类型语言，在开发阶段有各种类型检查，避免运行期的错误。

但其实，强类型语言的运行期容错很差，需要大量手写的try catch，否则很容易崩溃。

比如给一个number类型的变量赋值一个字符串，在开发阶段会检查，编译不允许通过。

```ts
let a:number = "abc" //报错，无法编译
```

但如果从网络动态下载了一个数据，可能会逃过编译器的校验，如果在运行时发生了给number变量赋值或as或parseInt字符串等类型不匹配行为，App会直接崩溃。

这是原生开发和web开发非常大的不同。

uvue框架内部做了一些错误拦截，减少崩溃，报错会触发app的onError。

目前框架支持捕获错误的来源有（仅限同步代码）：

- 组件渲染器（template模板代码）
- 事件处理器（template模板代码中监听的事件）
- 生命周期钩子（应用、页面、组件的生命周期）
- 侦听器（watch监听）

除了以上代码，其他地方如果代码写不对就会崩溃。开发者务必注意，在可能不安全的地方要try。
