onCleanup

Cria um objeto que executa uma função quando é limpo ou sai de escopo.

Categoria: Programming > Functions

Sintaxe

c = onCleanup(task)

Retorna um objeto de limpeza que chama o function handle task sem argumentos quando c é destruído.

Descrição

Uma variável local é destruída quando a função retorna, normalmente ou por erro. Guardar um objeto onCleanup em uma variável assim garante que a tarefa seja executada em qualquer caminho de saída. É a forma padrão de fechar arquivos, restaurar configurações ou apagar dados temporários sem repetir a limpeza em vários lugares.

A tarefa também é executada se a variável for sobrescrita ou removida com clear.

Argumentos de entrada

task
Function handle sem entradas, por exemplo @() fclose(fid).

Argumentos de saída

c
Um objeto onCleanup. Guarde-o em uma variável; descartá-lo executa a tarefa imediatamente.

Exemplo

Limpeza ao sair da função e com clear

function work()
    c = onCleanup(@() fprintf('leaving\n'));
    fprintf('working\n');
end
work();
x = onCleanup(@() disp('cleared'));
clear x
disp('done')
Saída
working
leaving
cleared
done

Veja também

clear fclose try, catch delete