Árvore de páginas

invalid handle used

Esta ocorrência é disparada por funções de acesso direto a arquivo, como por exemplo fSeek(), fRead() e/ou fWrite(), quando o parâmetro informado como Handler de arquivo não for válido. 

Exemplo da Ocorrência : 

/*-------------------------------------------------------
ERRO THREAD ([1872], user_, SRVTESTE)   16/02/2011   10:17:42
 
 Stack : 
invalid handle used in file C:\AdvTec9_101202a\lib_base\diskman.cpp at line 167
 on GERAARQ(EXPSMB.PRW) 16/02/2011 10:15:18 line : 58
 
[build: 7.00.101202A-20110106]
[environment: ENVTESTE]
[thread: 1872]
[dbthread: 5060]
[rpodb: Top]
[localfiles: CTREE]
[remark: Executando: U_ExpSmB]
[threadtype: JobThread]
Called from U_EXPSMB(EXPSMB.PRW) 16/02/2011 10:15:18 line : 22
Called from WFLAUNCHER(WF.PRW) 16/09/2008 09:04:16 line : 348
-------------------------------------------------------*/

Causas prováveis : 

   Na maioria dos casos, uma ocorrência desta natureza é reproduzida com um código fonte Advpl que não verificou se a operação que retornou o handler de arquivo ( fCreate e/uo fOpen ) foram realizadas com sucesso. Em caso de falha em uma destas funções, o handler de arquivo retornado é -1 ( menos um ). Caso este handler seja utilizado nas funções fSeek, fRead, fWrite e funções correlatas, a aplicação será finalizada com a ocorrência de erro acima. 

Ações corretivas : 

   O código fonte Advpl da função em questão deve tratar a condição de falha de abertura de arquivo, verificando se o handler de arquivo retornado pelas funções fCreate e/ou fOpen é um handler válido, informando maiores detalhes da falha obtendo um códugo de razão de falha utilizando a função fError(), e não permitindo a continuação do programa e/ou a chamada das funções subsequentes de manutenção de arquivo informando um handler inválido. 

 

  • Sem rótulos