Página 1 de 1
Rotina de erros - será exagero?
Enviado: 30 Jun 2016 11:49
por JoséQuintas
Não sei se vou exagerar a rotina de erros, também já serve de modelo.
O que minha rotina de erros faz?
Ela salva o erro no arquivo hb_out.log, e abre no bloco de notas.
Sim só isso.
O nome hb_out.log é porque é o mesmo que o Harbour usa pra erros que não passam pela errorsys, então já fica junto.
O que o aplicativo faz?
Ao ser carregado, se existir hb_out.log, e se existir internet funcionando, me envia esse hb_out.log por email.
Mesmo em máquina sem internet o erro fica registrado.
Quando uma máquina com internet é usada, é enviado o email.
Legal, tudo ok, com ou sem internet, o erro chega aqui.
Agora surgiu uma novidade: mapeamento do servidor sumiu.
Se não tem mapeamento, não tem gravação do erro.
Ok, não tem a ver com o aplicativo, é defeito de rede.
Pensei em registrar mesmo assim.
Pensei na pasta temporária, que é no temp de c:, sempre disponível.
Ao carregar o aplicativo, se tem dirtemp\hb_out.log, acumular no curdir\hb_out.log, e todo restante continua como sempre foi.
Será que é exagero? enviar erro até se o "disco" sumiu?
Rotina de erros - será exagero?
Enviado: 30 Jun 2016 13:13
por Kapiaba
Eu apenas aviso ao usuário assim:
Código: Selecionar todos
//----------------------------------------------------------------------------//
FUNCTION DOSERRO( QUAL ) // ERROS DE REDE...
PRIVATE FALHA[ 999 ]
IF QUAL = 0 .OR. QUAL > 120
QUAL = 999
ENDIF
FALHA[ 1 ] = "NUMERO DE FUNCAO INVALIDA"
// MUDEI EM: 24/02/2016 Para ficar mais claro a mensagem.
FALHA[ 2 ] = "ARQUIVO NAO ENCONTRADO NA PASTA DO PLENO: VERIFIQUE SUA REDE. "+ ;
"TEM UMA FALHA DE COMUNICACAO DO SEU COMPUTADOR COM O SERVIDOR "+ ;
"DE ARQUIVOS."
FALHA[ 3 ] = "CAMINHO OU ARQUIVO NAO ENCONTRADO"
FALHA[ 4 ] = "MUITOS ARQUIVOS ABERTOS"
FALHA[ 5 ] = "ACESSO NEGADO - LIBERE O ACESSO A PASTA ACIMA - CHAME O TECNICO."
FALHA[ 6 ] = "HANDLE INVALIDO - PROBELMAS NO HD."
FALHA[ 7 ] = "BLOCO DE CONTROLE DE MEMORIA DESTRUIDO"
FALHA[ 8 ] = "MEMORIA INSUFICIENTE - COLOQUE MAIS MEMORIA RAM"
FALHA[ 9 ] = "ENDERECO DE BLOCO DE MEMORIA INVALIDO"
FALHA[ 10 ] = "DISPOSITIVO INVALIDO"
FALHA[ 11 ] = "FORMATACAO INVALIDA"
FALHA[ 12 ] = "CODIGO DE ACESSO INVALIDO"
FALHA[ 13 ] = "DADOS INVALIDOS"
FALHA[ 14 ] = "RESERVADO PARA USO FUTURO 14"
FALHA[ 15 ] = "ACIONADOR DE DISCO(DRIVE) INVALIDO"
FALHA[ 16 ] = "TENTOU REMOVER DO DIRETORIO CORRENTE"
FALHA[ 17 ] = "DISPOSITIVO NAO E O MESMO"
FALHA[ 18 ] = "NAO HA MAIS ARQUIVO"
FALHA[ 19 ] = "DISCO PROTEGIDO CONTRA GRAVACAO - LIBERE O ACESSO DO HD."
FALHA[ 20 ] = "UNIDADE DE DISCO DESCONHECIDA"
FALHA[ 21 ] = "IMPOSSIVEL LEITURA DE DISCO - CHAME O TECNICO."
FALHA[ 22 ] = "COMANDO DESCONHECIDO"
FALHA[ 23 ] = "INFORMACAO ERRADA(CRC)"
FALHA[ 24 ] = "COMPRIMENTO DA ESTRUTURA ESTA RUIM"
FALHA[ 25 ] = "ERRO NA PESQUISA(SEEK)"
FALHA[ 26 ] = "UNIDADE DE ARMAZENAGEM(MIDIA) DESCONHECIDO"
FALHA[ 27 ] = "SETOR NAO ENCONTRADO - PROBLEMAS NO HD."
FALHA[ 28 ] = "ACABOU O PAPEL DA IMPRESSORA"
FALHA[ 29 ] = "GRAVACAO INVALIDA"
FALHA[ 30 ] = "LEITURA INVALIDA"
FALHA[ 31 ] = "FALHA GERAL- CHAME O TECNICO URGENTE."
FALHA[ 32 ] = "VIOLACAO DE COMPARTILHAMENTO"
FALHA[ 33 ] = "TENTATIVA DE ACESSAR UM ARQUIVO BLOQUEADO"
FALHA[ 34 ] = "MUDANCA DE DISCO INVALIDA"
FALHA[ 35 ] = "TENTATIVA DE ABRIR MAIS ARQUIVOS DO QUE O DEFINIDO NO COMANDO FCBS."
FALHA[ 36 ] = "ESTOURO NO BUFFER DE COMPARTILHAMENTO."
FALHA[ 37 ] = "RESERVADO PARA USO FUTURO 37"
FALHA[ 38 ] = "RESERVADO PARA USO FUTURO 38"
FALHA[ 39 ] = "RESERVADO PARA USO FUTURO 39"
FALHA[ 40 ] = "RESERVADO PARA USO FUTURO 40"
FALHA[ 41 ] = "RESERVADO PARA USO FUTURO 41"
FALHA[ 42 ] = "RESERVADO PARA USO FUTURO 42"
FALHA[ 43 ] = "RESERVADO PARA USO FUTURO 43"
FALHA[ 44 ] = "RESERVADO PARA USO FUTURO 44"
FALHA[ 45 ] = "RESERVADO PARA USO FUTURO 45"
FALHA[ 46 ] = "RESERVADO PARA USO FUTURO 46"
FALHA[ 47 ] = "RESERVADO PARA USO FUTURO 47"
FALHA[ 48 ] = "RESERVADO PARA USO FUTURO 48"
FALHA[ 49 ] = "RESERVADO PARA USO FUTURO 49"
FALHA[ 50 ] = "REDE REQUERIDA NAO SUPORTADA"
FALHA[ 51 ] = "COMPUTADOR REMOTO NAO ESTA RESPONDENDO"
FALHA[ 52 ] = "NOME DA REDE DUPLICADO"
FALHA[ 53 ] = "NOME DA REDE NAO ENCONTRADO"
FALHA[ 54 ] = "REDE OCUPADA."
FALHA[ 55 ] = "DISPOSITIVO DE REDE NAO MAIS EXISTENTE"
FALHA[ 56 ] = "LIMITE DE COMANDOS DA BIOS EXCEDIDO"
FALHA[ 57 ] = "ERRO DE HARDWARE NA PLACA DA REDE"
FALHA[ 58 ] = "RESPOSTA INCORRETA DA REDE"
FALHA[ 59 ] = "ERRO INESPERADO NA REDE - CHAME O TECNICO DE REDE."
FALHA[ 60 ] = "PLACA REMOTA INCOMPATIVEL"
FALHA[ 61 ] = "FILA DE IMPRESSAO ESTA CHEIA"
FALHA[ 62 ] = "NAO EXISTE ESPACO SUFICIENTE PARA O ARQUIVO DE IMPRESSAO."
FALHA[ 63 ] = "ARQUIVO DE IMPRESSAO ELIMINADO(ESPACO INSUFICIENTE)"
FALHA[ 64 ] = "NOME DA REDE ELIMINADO"
FALHA[ 65 ] = "ACESSO NAO PERMITIDO - LIBERE O ACESSO A PASTA ACIMA."
FALHA[ 66 ] = "TIPO INCORRETO DE DISPOSITIVO DE REDE"
FALHA[ 67 ] = "NOME DA REDE NAO ENCONTRADO"
FALHA[ 68 ] = "LIMITE EXCEDIDO PARA O NOME DA REDE"
FALHA[ 69 ] = "LIMITE DE SESSAO DA BIOS EXCEDIDO NA REDE"
FALHA[ 70 ] = "PAUSA TEMPORARIA"
FALHA[ 71 ] = "PEDIDO DE REDE NEGADO"
FALHA[ 72 ] = "DISPOSITIVO DA IMPRESSORA OU DISCO PAUSADO."
FALHA[ 73 ] = "RESERVADO PARA USO FUTURO 73"
FALHA[ 74 ] = "RESERVADO PARA USO FUTURO 74"
FALHA[ 75 ] = "RESERVADO PARA USO FUTURO 75"
FALHA[ 76 ] = "RESERVADO PARA USO FUTURO 76"
FALHA[ 77 ] = "MEMORIA INSUFICIENTE PARA OPERAR O EQUIPAMENTO. CHAME O TECNICO."
FALHA[ 78 ] = "RESERVADO PARA USO FUTURO 78"
FALHA[ 79 ] = "RESERVADO PARA USO FUTURO 79"
FALHA[ 80 ] = "ARQUIVO JA EXISTENTE NO DISCO(HD)"
FALHA[ 81 ] = "RESERVADO PARA USO FUTURO 81"
FALHA[ 82 ] = "IMPOSSIVEL CRIAR DIRETORIO"
FALHA[ 83 ] = "OCORREU FALHA EM INT 24H DO DOS"
FALHA[ 84 ] = "EXCESSOS DE REDIRECIONAMENTOS"
FALHA[ 85 ] = "REDIRECIONAMENTO DUPLICADO"
FALHA[ 86 ] = "SENHA INVALIDA"
FALHA[ 87 ] = "PARAMETRO INVALIDO OU INCORRETO."
FALHA[ 88 ] = "ERRO AO ESCREVER PARA A REDE. DEFEITO TCNICO."
FALHA[ 89 ] = "NENHUM ERRO OCORRIDO!"
FALHA[ 90 ] = "erro de sistema."
FALHA[ 91 ] = "Temporizador da tabela do serviço de transbordo."
FALHA[ 92 ] = "Temporizador serviço tabela duplicar."
FALHA[ 93 ] = "Nenhum item para trabalhar."
FALHA[ 95 ] = "chamada de sistema interrompida."
FALHA[ 99 ] = "Dispositivo em uso."
FALHA[100] = "usuário / sistema de limite de abertura do semáforo atingido."
FALHA[101] = "Exclusivo semáforo já possuía."
FALHA[102] = "DosCloseSem encontrada conjunto de semáforos."
FALHA[103] = "Há muitas solicitações de semáforos exclusivos."
FALHA[104] = "Operação inválida em tempo de interrupção."
FALHA[105] = "proprietário do semáforo anterior encerrado sem libertar semáforo."
FALHA[106] = "limite de Semaphore excedido."
FALHA[107] = "Insira o disco rígido B na unidade A."
FALHA[108] = "Unidade bloqueado por outro processo."
FALHA[109] = "Escreva no tubo com nenhum leitor."
FALHA[110] = "Open / Create falhou devido a ordem explícita falhar."
FALHA[111] = "Tampão passado para chamada de sistema muito pequeno para armazenar dados de retorno."
FALHA[112] = "Não há espaço suficiente no disco. Disco Cheio. Chame o Tecnico."
FALHA[113] = "Não é possível alocar uma outra estrutura de pesquisa e manusear."
FALHA[114] = "Alvo punho em DosDupHandle inválido."
FALHA[115] = "Usuário inválido endereço virtual."
FALHA[116] = "Erro na gravação de exibição ou o teclado ler."
FALHA[117] = "Categoria de DevIOCtl não definido."
FALHA[118] = "valor inválido passado para verificar bandeira."
FALHA[119] = "Nível quatro motorista não foi encontrado."
FALHA[120] = "Função inválida chamado."
FALHA[999] = "ERRO NAO CATALOGADO INFORME O NUMERO DO ERRO AO SUPORTE."
/*
Na maioria das vezes estes erros estão relacionados a uma falha de Hardware
(parte fisica do computador)
*/
RETURN( "PROBLEMA: " + FALHA[ QUAL ] )
Rotina de erros - será exagero?
Enviado: 30 Jun 2016 14:02
por JoséQuintas
Eu tento avisar com algo mais, além de vir por email.
Código: Selecionar todos
CASE "DOS ERROR 3" $ Upper( cTexto )
cTxtError += "DOS Error 3" + hb_eol()
cTxtError += "Esta mensagem ocorre quando o sistema faz referência a uma pasta que não existe, ou que não pode ser acessada" + hb_eol()
cTxtError += "Verifique se a pasta realmente existe, e se o acesso não está bloqueado" + hb_eol()
Rotina de erros - será exagero?
Enviado: 30 Jun 2016 16:42
por Kapiaba
Além de vir por email, eu abro o editor do windows e mostro o ERROR.LOG
Quando o cliente liga, já tem a solução pronta...
Base aqui:
https://pctoledo.org/forum/viewto ... sta#p90368
abs
Rotina de erros - será exagero?
Enviado: 30 Jun 2016 17:54
por JoséQuintas
Exato.
Problemas eliminados:
- Usuário explicar o erro, tendo uma cópia ele nem precisa explicar
- Se já temos o erro, já corrigimos antes do usuário ligar
- Se o email não chega, pelo menos chama a atenção do usuário que está ocorrendo erro, e em certos casos já mostra como resolver
Nas primeiras vezes que usei isso, no Clipper, descobri o erro causado pelo Blinker 5.0 no Clipper em rede Windows 2000.
Que nem eu, nem os usuários sabíamos que acontecia.
Mas no Clipper o esquema era outro, parecido.
Era um programa separado que usava SAVE SCREEN pra capturar a tela final.
O que comentei agora, de problemas do servidor sumir, é perigoso.
Pode corromper tudo.
Só que não fica salvo. É bom pra cobrar solução.
Ainda não decidi se vou acrescentar esse último, pra poder registrar na pasta temp.