Você está aqui: JavaScript ::: Dicas & Truques ::: Tratamento de Erros

Como retornar o rastreio da pilha de um erro de tempo de execução em JavaScript usando a propriedade stack do objeto Error

Quantidade de visualizações: 6951 vezes
A propriedade stack do objeto Error da linguagem JavaScript pode ser usada quando queremos obter mais informações sobre as causas do aparecimento de um erro em tempo de execução. Dessa forma nós conseguimos rastrear o erro até a sua origem.

Veja um trecho de código JavaScript completo demonstrando o seu uso:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<!doctype html>
<html>
<head>
  <title>Estudos JavaScript</title>
</head>
<body>

<script language="javascript">
  // o trecho de código a seguir vai provocar
  // um erro de tempo de execução em JavaScript
  try{
    // y não foi definido
    var x = y;
  }
  catch(e){
    // mostra a pilha de rastreio do erro
    document.write("Rastreio da pilha: " + e.stack);
  } 
</script>
  
</body>
</html>

Ao executar este código JavaScript nós teremos o seguinte resultado:

Rastreio da pilha: ReferenceError: y is not defined at http://localhost/estudos/estudos_js.html:13:13

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: VCL - Visual Component Library ::: TListBox

Como usar um laço for para pesquisar valores nos itens de uma ListBox do Delphi

Quantidade de visualizações: 12413 vezes
Nesta dica mostro como é possível pesquisar valores nos itens de uma ListBox. Note que, se o valor pesquisado for encontrado, nós o selecionamos na lista e informamos seu índice. Se não for encontrado nós ajustamos uma variável Boolean e avisamos do não sucesso da operação. Finalmente note que este código faz diferenciação de letras maiúsculas e minúsculas, ou seja, Osmar será diferente de OSMAR. Veja o código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
  pesquisa: string;
  encontrou: Boolean;
begin
  // vamos solicitar o texto a ser pesquisado na ListBox
  pesquisa := InputBox('Pesquisar', 'Informe o texto', '');
  encontrou := false;

  // vamos usar um laço for para percorrer todos os itens
  // da ListBox
  for i := 0 to ListBox1.Count - 1 do
    begin
      if ListBox1.Items[i] = pesquisa then
        begin
          encontrou := true;
          // vamos selecionar o item encontrado
          ListBox1.ItemIndex := i;
          ShowMessage('O texto pesquisado foi encontrado ' +
            'no índice ' + IntToStr(ListBox1.ItemIndex));
        end;
    end;

    // não foi encontrado?
    if not encontrou then
      begin
        ShowMessage('O texto pesquisado não foi encontrado.');
      end;
end;

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


C ::: Dicas & Truques ::: Strings e Caracteres

Como concatenar apenas parte de uma string à outra string usando a função strncat() da linguagem C

Quantidade de visualizações: 9582 vezes
Muitas vezes precisamos adicionar à uma string apenas alguns caracteres de outra, ou seja, não queremos concatenar as duas strings completamente; apenas parte da segunda. Para isso podemos usar a função strncat(). Veja o protótipo e explicação desta função:

char *strncat(char *str1, const char *str2, size_t n);


Aqui a quantidade n de caracteres da string str2 será anexada ao final da string str1. O caractere de fim de string (null character) da str1 é sobrescrito durante a operação e anexado novamente assim que os caracteres desejados da str2 sejam copiados. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
  char texto[] = "Gosto muito de ";
  char palavra[] = "C++";

  /*
  Na segunda sequencia de caracteres nós temos "C++", mas
  queremos anexar à primeira sequencia apenas "C". Veja
  como isso é feito
  */

  strncat(texto, palavra, 1);

  // exibe o resultado
  puts(texto);

  system("pause");
  return 0;
}

Ao executar este códigos nós teremos o seguinte resultado:

Gosto muito de C


C++ ::: Win32 API (Windows API) ::: Passos Iniciais

Como usar a função WinMain das aplicações C++ GUI usando a Windows API

Quantidade de visualizações: 9423 vezes
Cada programa de interface gráfica escrito em C++ e usando a Windows API possui como ponto de entrada de execução, a função WinMain(). Esta função é a equivalente do main() em aplicações console. Veja sua assinatura:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE 
   hPrevInstance, LPSTR lpCmdLine, int nCmdShow)


É possível usar esta função sem a macro WINAPI, ou seja:

int WinMain(HINSTANCE hInstance, HINSTANCE 
   hPrevInstance, LPSTR lpCmdLine, int nCmdShow)


O primeiro passo a observar é que esta função deve retornar um valor inteiro quando finalizar. Isso serve para informar ao sistema operacional se algum erro ocorreu durante a tentativa de sua execução.

Vejamos agora uma explicação detalhada de seus parâmetros:

HINSTANCE hInstance - É um handle para o módulo executável do programa (o arquivo .exe na memória).

HINSTANCE hPrevInstance - Sempre NULL para programas Win32.

LPSTR lpCmdLine - Os argumentos da linha de comando como uma única string. Não inclui o nome do programa.

int nCmdShow - Um valor inteiro que pode ser passado para a função ShowWindow().

hInstance é usado para tarefas tais como carregar recursos ou outras que são realizadas em um módulo. Um módulo é um EXE ou DLL carregada em seu programa.

hPrevInstance era usado como um handle para uma instância executada anteriormente no Win16. Este cenário não mais ocorre. Em Win32 podemos ignorar por completo este parâmetro.


Python ::: Dicas & Truques ::: Lista (List)

Como excluir e retornar o último item de uma lista Python usando o método pop()

Quantidade de visualizações: 8623 vezes
Nesta dica mostrarei como remover e retornar o último item de uma List do Python usando o método pop(). Veja um exemplo no qual temos uma lista com 6 inteiros. Note o resultado da lista após a chamada à função pop().

Eis o código Python completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

"""
  Este exemplo mostra como remover e retornar
  o último item de uma lista
"""

def main():
  # cria uma lista de inteiros
  valores = [4, 23, 7, 1, 0, 54]
  
  # imprime a lista
  print(valores)

  # remove o último item
  valor = valores.pop()
  print("Item removido:", valor)

  # exibe a lista novamente
  print(valores)
    
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

[4, 23, 7, 1, 0, 54]
Item removido: 54
[4, 23, 7, 1, 0]

É importante observar que um erro do tipo

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Exception has occurred: IndexError
pop from empty list

será exibido se chamarmos o método pop() em uma List vazia.


Java ::: Pacote java.lang ::: StringBuffer

Curso completo de Java - Como usar a classe StringBuffer da linguagem Java

Quantidade de visualizações: 8696 vezes
A classe StringBuffer, no pacote java.lang, representa uma sequencia de caracteres mutável e segura em relação a threads. Um objeto StringBuffer é parecido com uma String, com a diferença que um StringBuffer pode ser modificado in-place, ou seja, modificações em seu conteúdo não geram uma nova cópia, como acontece com objetos da classe String.

Veja a posição desta classe na hierarquia de classes Java:

java.lang.Object
  java.lang.StringBuffer
A classe StringBuffer implementa as interfaces Serializable, Appendable e CharSequence.

A qualquer momento um StringBuffer contém uma sequencia de caracteres em particular, mas o tamanho e o conteúdo da sequencia pode ser alterado por meio de certas chamadas de métodos.

Objetos StringBuffer são seguros para acesso em um ambiente de múltiplas threads. Os métodos são sincronizados (synchronized) onde necessário de forma a garantir que todas as operações em uma instância em particular se comportem como se estivessem em ordem serial, ou seja, sejam consistentes com a ordem das chamadas de métodos feitas por cada uma das threads envolvidas.

As operações principais de um StringBuffer são os métodos append() e insert(), que são sobrecarregados para aceitar dados de qualquer tipo. Cada um destes métodos converte a informação fornecida em string e então acrescenta ou insere os caracteres desta string no string buffer. O método append() sempre adiciona os caracteres no final do buffer. O método insert(), por sua vez, adiciona os caracteres em um determinado ponto.

Por exemplo, se z se refere a um objeto string buffer cujo conteúdo é "start", então a chamada de método z.append("le") faria com que o string buffer tivesse agora ""startle"", enquanto z.insert(4, "le") alteraria o conteúdo do string buffer para "starlet".

Em geral, se sb se refere a uma instância de StringBuffer, então sb.append(x) tem o mesmo efeito que sb.insert(sb.length(), x).

Sempre que uma operação ocorre envolvendo uma sequencia de fonte (por exemplo, adicionar ou inserir a partir de uma outra sequencia), esta classe sincroniza somente o string buffer no qual a operação está sendo feita.

Todo string buffer possui uma capacidade (capacity). Enquanto o comprimento da sequencia de caracteres contida no string buffer não exceder a capacidade do mesmo, não há necessidade de alocar uma nova matriz interna de buffer. Se o buffer interno for sobrecarregado, ele será automaticamente expandido. A partir do Java 5, esta classe foi suplementada com uma classe equivalente criada para o uso em ambiente de thread única: StringBuilder. A classe StringBuilder deve ser usada em vez de StringBuffer, uma vez que ela suporta as mesmas operações mas é mais rápida por não executar sincronização.


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 101 usuários muito felizes estudando em nosso site.