RX0309

Domínio: Execução

Mensagem de erro

a expressão que %s pediu recusou (%s)

Na mensagem, %s marca um valor que o motor preenche quando levanta o erro.

A história

Um map, um filter, um reduce ou um process.await parou, e o motor disse que a expressão que ele pediu recusou. Vamos ver como isso funciona. Esses builtins percorrem uma expressão para cada membro da coleção, e, no caso do await e do done, percorrem a leitura que estão esperando, sempre de novo a cada pedido. Quando essa expressão recusa, a razão verdadeira é a recusa dela, e ela costuma aparecer sozinha, com a própria mensagem. Esta linha é a rede de segurança. Se a recusa da expressão não chegou até o builtin, ainda assim a execução precisa dizer qual expressão foi a culpada, e é isso que esta mensagem faz. Um exemplo: no filter, a sua expressão divide por um valor que, para algum membro, vale zero. A parada vem dessa conta. A correção está dentro da expressão, e não no filter. A mensagem nomeia o argumento. Olhe a expressão desse argumento, e teste-a com o membro problemático.

Texto do catálogo de erros do motor do Rush.