メインコンテンツにスキップ

missing_exception_value

メソッド {0} は、関数の戻り値の型が 'void'、'Handle'、'Pointer' のいずれでもない場合、例外的な戻り値(2番目の引数)を持つ必要があります。

説明

#

Pointer.fromFunction または NativeCallable.isolateLocal の呼び出しで、呼び出しから返される型が voidHandlePointer のいずれでもない場合に、2番目の引数(例外的な戻り値)が含まれていないと、アナライザーはこの診断を生成します。

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);
}