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

invalid_exception_value

メソッド {0} は、関数の返り値の型が 'void'、'Handle'、または 'Pointer' である場合に、例外的な返り値(2番目の引数)を持つことはできません。

説明

#

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

FFI の詳細については、dart:ffi を使用した C の相互運用 を参照してください。

#

以下のコードは、f の返り値の型が void であるにもかかわらず2番目の引数が提供されているため、この診断を生成します。

dart
import 'dart:ffi';

typedef T = Void Function(Int8);

void f(int i) {}

void g() {
  Pointer.fromFunction<T>(f, 42);
}

一般的な修正

#

例外的な返り値を削除する

dart
import 'dart:ffi';

typedef T = Void Function(Int8);

void f(int i) {}

void g() {
  Pointer.fromFunction<T>(f);
}