Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 156
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
1) por que não inicializar imediatamente ao declarar int err=0 ?
2) não verificou, mas de acordo com a documentação o erro é armazenado em alguma variável, que é autozerada ao usar a função GetLastError(),
e também sempre muda ao usar algumas funções (na maioria terminais)
3) É por isso que GetLastError() deu um valor 0 após se referir a um número de bilhete inexistente na OrderSelect:
"As outras funções não alteram o valor da última variável de erro sob nenhuma condição. ................., OrderSelect, ...................."
Muitas vezes eu declararia uma variável como esta dentro das funções:
Mais para dentro, em alguma condição eu já o chamo para ver se há um erro. Bem, não sou apenas eu, mas muitos outros lugares no código que encontrei. Por assim dizer, é uma situação típica. Hoje pensei que não é lógico declarar a mesma variável cada vez em cada função onde se quer controlar os erros. Pensei nisso e cheguei à conclusão de que é mais fácil declarar globalmente uma vez e inicializá-lo no init. É assim:
E ainda, quando você precisa chamar a variável errada nas funções do usuário, sabendo que ela já tem um valor. De fato, GetLastError() emite o código do último erro, então se esta variável errar é chamada em cada função no final de todos os cálculos, que é responsável pela emissão do código de erro, e chama GetLastError(), então tudo estará correto, certo?
Mas se você não chamar esta variável no final de alguma função (seguindo a cadeia de execução do código), ela não será reinicializada, e pode ser uma execução errada caso tenha havido um erro na execução anterior, mas não na atual, mas o código de erro é devolvido por último... E para redefini-lo, você precisa chamar esta função GetLastError(). Ou seja, aqui tudo depende se foi chamado ou não. Se você não tem certeza de que estará em todos os lugares, é mais fácil fazer um novo seguro e reinicializá-lo toda vez, certo?
Você pode declará-lo globalmente, depois no início() antes de chamar GetLastError() redefini-lo, por exemplo
1) por que não inicializar imediatamente ao declarar int err=0 ?
2) não verificou, mas de acordo com a documentação o erro é armazenado em alguma variável, que é autozerada ao usar a função GetLastError(),
e também sempre muda ao usar algumas funções (na maioria terminais)
3) É por isso que GetLastError() deu um valor 0 após se referir a um número de bilhete inexistente na OrderSelect:
"As outras funções não alteram o valor da última variável de erro sob nenhuma condição. ................., OrderSelect, ...................."
Você pode declarar o erro globalmente, depois zerá-lo no início() antes de chamar GetLastError(), por exemplo
então já existe um problema lógico. A menos que GetLastError() seja constantemente chamado(teoricamente no final de cada função do usuário).
Às vezes você tem que chamá-lo com mais freqüência
Victor (hoz), não entendo seu alarido com o último erro.
Declare a função de tratamento de erros e chame-a onde for necessário. Tudo será local e pode ser usado em qualquer lugar.
Victor (hoz), não entendo seu alarido com o último erro.
Declare a função de tratamento de erros e chame-a onde for necessário. Tudo será local e pode ser usado em qualquer lugar.
É compreensível. Mas esta função será chamada quando eu precisar dela, ou seja, quando eu quiser verificar se há um erro. Mas se antes houve um erro em algum lugar e não há erro neste momento, ele retornará o erro anterior... Porque em sua função Vadim, a variável LastError não é zerada , chamando GetLastError(). A questão é a seguinte...
É compreensível. Mas esta função será chamada quando eu precisar dela, ou seja, quando eu quiser verificar se há um erro. Mas se houve um erro em algum lugar antes, e neste momento não há erro, ele retornará o erro anterior... Porque em sua função Vadim, a variável LastError não é zerada , chamando GetLastError(). Essa é a questão...
Não deve ser reposto a zero. Deve haver o hábito de verificar a existência de erros em todos os lugares após as funções. Você também deve fazer com que a chamada seja desativada. Para que não abrande no modo de combate. Isto é, é um depurador.
A exceção, é claro, é para erros que precisam ser analisados, para se tomar uma decisão.
Isso é compreensível. Mas esta função será chamada quando eu precisar dela, ou seja, quando eu quiser verificar se há um erro. Mas se antes houve um erro em algum lugar e não há erro neste momento, ele retornará o erro anterior... Porque em sua função Vadim, a variável LastError não é zerada , chamando GetLastError(). A questão é a seguinte...