DD
Ações OnExit não executam depois de um throw new Exception
boa tarde, estou com um caso:
tenho um form onde tenho alguns eventos onExit de alguns campos, e estou usando a classe TValida para validar os dados antes de salvar, acontece que quando é encontrado um erro é executado o comando "throw new Exception" com a mensagem do campo validado, notei que perdi todos as ações que foram executadas nos eventos.
tem alguma maneira de controlar para que não perca as ações executadas, ou quem sabe, poder executar elas novamente ?
tenho um form onde tenho alguns eventos onExit de alguns campos, e estou usando a classe TValida para validar os dados antes de salvar, acontece que quando é encontrado um erro é executado o comando "throw new Exception" com a mensagem do campo validado, notei que perdi todos as ações que foram executadas nos eventos.
tem alguma maneira de controlar para que não perca as ações executadas, ou quem sabe, poder executar elas novamente ?
achei a solução, repasso caso alguém precise:
adicionei a linha no catch
TForm::sendData('form_Name', $data);
catch (Exception $e) // in case of exception
{
new TMessage('error', $e->getMessage()); // shows the exception error message
$data = $this->form->getData();
$this->form->setData( $data ); // keep form data
TForm::sendData('form_Name', $data);
TTransaction::rollback(); // undo all pending operations
$this->notebook->setCurrentPage( TSession::getValue('current_page') );
}