Skip to content

Latest commit

 

History

History
77 lines (56 loc) · 1.86 KB

4.IgnoreError.md

File metadata and controls

77 lines (56 loc) · 1.86 KB

IgnoreError

IgnoreError 是 Unify 提供的注解,主要用于修饰 UniNativeModule 模板中的协议方法,它是可选的。它的作用是:忽略原生侧 Error 信息的感知。

描述

  1. @IgnoreError()只能用于修饰 UniNativeModule 模板中的协议方法
<style> table tr th, table tr td { border:1px solid #f0f0f0; } table{ border-collapse: collapse; } </style>
Unify模板 对 或 错 备注
javascript
@UniFlutterModule()
abstract class Example {
    @IgnoreError()
    void method();
}

参考上面的描述

javascript
@UniNativeModule()
abstract class Example {
    @IgnoreError()
    void method();
}

特别说明

Unify 使用 UniNativeModule 模板生成原生代码时,默认情况下,会生成原生侧 Error 信息回传到 Flutter 侧的代码逻辑,以便在 Flutter 侧感知原生侧发生的异常。

在 iOS 端的体现是:生成的 Protocol 中的方法会默认带有一个block参数fail,生成代码举例:

- (void)getDeviceInfo:(void(^)(DeviceInfoModel* result))success fail:(void(^)(FlutterError* error))fail

如果你不关心这个fail参数,使用@IgnoreError()修饰模板中对应的协议方法,在生成 iOS 端的代码时,接口就不带fail参数了。

这点,Android 端和 iOS 端有所不同,Android 端的主要体现不是在参数上。

而是,生成Android端代码时,会使用try catch包裹Channel调用的核心逻辑,这部分逻辑是隐藏的,用户不会感知。一旦发生异常,Unify 会自动将catch到的 Error 信息发送给 Flutter 侧。