Saltar para o conteúdo

Módulo:Protect/doc

Origem: Wikipédia, a enciclopédia livre.

Este metamódulo [en] simplifica o tratamento de erros em outros módulos. Ele transforma uma função, que pode gerar um erro, em uma função, que nesse caso retorna uma mensagem de erro especificada.

Uso[editar código-fonte]

 local protect = require('Módulo:Protect')
 local protectedFunc = protect(func, errFormat, options)

Argumentos[editar código-fonte]

  • func
    Função a ser transformada.
  • errFormat (padrão: 'Erro: %s')
    Mensagem de erro personalizada.
    Utilize '%s' para incluir a mensagem a partir de um erro capturado.
  • options – tabela opcional com os seguintes campos:
    • raw (padrão: false)
      Se for verdadeiro (true), então errFormat será usado como está, caso não, será colocado dentro de uma marcação (tag) <strong class="error">.
    • removeLocation (padrão: true)
      Se for verdadeiro (true), remove as informações de localização das mensagens de erro capturadas.

Valor de retorno[editar código-fonte]

O protectedFunc resultante é uma função, que chama a função original func, passando todos os argumentos para ela, e retorna todos os seus valores de retorno. Se func gerar um erro, a mensagem de erro especificada será retornada.

Exemplo[editar código-fonte]

local protect = require('Módulo:Protect')

local p = {}

function p.main(frame)
    if not frame.args[1] then
        error('argumento faltando')
    end
    return frame.args[1]
end

p.main = protect(p.main)

return p

Invocar a função principal sem argumentos resultará em: Erro: argumento faltando