missing_exception_value
當函式的返回型別既不是 'void'、'Handle' 也不是 'Pointer' 時,方法 {0} 必須有一個異常返回值(第二個引數)。
描述
#當對方法 Pointer.fromFunction 或 NativeCallable.isolateLocal 的呼叫沒有第二個引數(異常返回值),且該呼叫預期返回的型別既不是 void、Handle 也不是 Pointer 時,分析器會生成此診斷資訊。
有關 FFI 的更多資訊,請參閱 使用 dart:ffi 進行 C 互操作。
示例
#以下程式碼會產生此診斷資訊,因為函式 f 預期返回一個 8 位整數,但對 fromFunction 的呼叫不包含異常返回引數
dart
import 'dart:ffi';
int f(int i) => i * 2;
void g() {
Pointer.fromFunction<Int8 Function(Int8)>(f);
}常見修復
#新增一個異常返回型別
dart
import 'dart:ffi';
int f(int i) => i * 2;
void g() {
Pointer.fromFunction<Int8 Function(Int8)>(f, 0);
}