Pular para o conteúdo principal

missing_exception_value

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

The method {0} must have an exceptional return value (the second argument) when the return type of the function is neither 'void', 'Handle', nor 'Pointer'.

Descrição

#

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

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

Exemplo

#

O código a seguir gera este diagnóstico porque o tipo retornado por f deve ser um inteiro de 8 bits, mas a chamada a fromFunction não inclui um argumento de retorno excepcional:

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

Correções comuns

#

Adicione um valor de retorno excepcional:

dart
import 'dart:ffi';
​
int f(int i) => i * 2;
​
void g() {
  Pointer.fromFunction<Int8 Function(Int8)>(f, 0);
}

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ê.