跳至主要內容

missing_exception_value

當函式的返回型別既不是 'void'、'Handle' 也不是 'Pointer' 時,方法 {0} 必須有一個異常返回值(第二個引數)。

描述

#

當對方法 Pointer.fromFunctionNativeCallable.isolateLocal 的呼叫沒有第二個引數(異常返回值),且該呼叫預期返回的型別既不是 voidHandle 也不是 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);
}