Pular para o conteúdo principal

invalid_exception_value

Detalhes sobre o diagnóstico 'invalid_exception_value' produzido pelo analisador do Dart.

The method {0} can't have an exceptional return value (the second argument) when the return type of the function is either 'void', 'Handle' or 'Pointer'.

Descrição

#

O analisador produz este diagnóstico quando uma invocação do método Pointer.fromFunction ou de NativeCallable.isolateLocal tem um segundo argumento (o valor de retorno de exceção) e o tipo a ser retornado pela invocação é void, Handle ou Pointer.

Para mais informações sobre FFI, veja Interop com C usando dart:ffi.

Exemplo

#

O código a seguir produz este diagnóstico porque um segundo argumento é fornecido quando o tipo de retorno de f é void:

dart
import 'dart:ffi';
​
typedef T = Void Function(Int8);
​
void f(int i) {}
​
void g() {
  Pointer.fromFunction<T>(f, 42);
}

Correções comuns

#

Remova o valor de exceção:

dart
import 'dart:ffi';
​
typedef T = Void Function(Int8);
​
void f(int i) {}
​
void g() {
  Pointer.fromFunction<T>(f);
}

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.