RX0060

Domínio: Execução

Mensagem de erro

%s não tem resto por zero (divisor %s)

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

A história

Você pediu o resto de uma divisão por zero, e o motor recusou. Vamos entender. O operador de resto é uma operação de divisão que deixa o resto de lado. Mas dividir por zero não tem quociente, então também não existe nenhum resto para deixar de lado. Não há nada para o acumulador avançar, nem nada para depositar. Por isso a lei do projeto é direta: divisão ou resto por zero é recusado em voz alta. Nunca vira um não-número, nunca vira infinito, nunca vira um valor padrão escondido, porque qualquer um desses esconderia o erro e deixaria o programa seguir com algo falso. A mensagem informa o dividendo, como o heap o guarda, e o divisor, como escrito. Exemplo: dez por cento zero. Pode ser que o divisor venha de uma variável que, naquele momento, valia zero. A correção: antes de calcular, confira se o divisor é diferente de zero, com um desvio, e trate o caso do zero de maneira explícita.

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