Tratamento de Exceções… No C#
Sunday, September 21, 2008 6:40 PM

Fala pessoal.

Hoje venho trazer um tema um pouco menos explorado pelos que tem menos experiência em desenvolvimento.
O tratamento de exceções nos permite prever erros que o sistema pode ter e manipular esses erros através das exceções que nada mais são do que as mensagens do sistema.

O try…
O try é o bloco de código para escopo normal. As linhas de código que você simplesmente colocaria dentro do método, passam a ficar dentro do bloco de try onde será executado uma tentativa normal.
Ex.:
            Sem o uso do bloco try…
            public void testeMetodo(string teste)
            {

                 Response.Write((Convert.ToInt32(teste))+1);

            }

            Com o uso do bloco try…
            public void testeMetodo(string teste)
            {

                 try
                 {

                       Response.Write((Convert.ToInt32(teste))+1);

                 }
                 catch{}

            }
O erro que pode ser gerado é na conversão. No exemplo acima eu estou convertendo um tipo string para inteiro. Isso só é possivel se o valor contido na variável “teste” seja um número inteiro. Assim o framework converte o valor de string para inteiro. Caso contrário é gerada uma exceção e o escopo do programa é direcionado para o bloco catch ao qual iremos falar mais abaixo.

O catch…
O catch é o bloco que trata o erro gerado. Dentro deste bloco pode ser vista a mensagem do erro e feita a manipulação que o desenvolvedor quiser como fechar o programa, retornar algo que identifique o erro ou simplesmente mostrar a mensagem de erro que foi gerada.
Seguindo o Ex.:
            Com o uso do bloco catch…
            public void testeMetodo(string teste)
            {

                 try
                 {

                       Response.Write((Convert.ToInt32(teste))+1);

                 }
                 catch (FormatException e)
                 {
                      Response.Write(e.Message.ToString());
                 }

             }
No bloco catch mostrado, apenas está sendo mostrada mensagem de erro a qual a exceção gerada mostra. O bloco catch pode ser repetido várias vezes para serem tratados vários tipos de exceção.
Ex.:
            Com o uso do bloco catch…
            public void testeMetodo(string teste)
            {

                 try
                 {

                       Response.Write((Convert.ToInt32(teste))+1);

                 }
                 catch (FormatException e)
                 {
                      Response.Write(e.Message.ToString());
                 }
                 catch (InvalidCastException e)
                 {
                      Response.Write(e.Message.ToString());
                 }

             }
Existe ainda um tipo de exceção padrão para todos os erros. Este tipo de exceção é chamada apenas de Exception e é usada da seguinte forma.
Ex.:
            Com o uso do bloco catch…
            public void testeMetodo(string teste)
            {

                 try
                 {

                       Response.Write((Convert.ToInt32(teste))+1);

                 }
                 catch (Exception e)
                 {
                      Response.Write(e.Message.ToString());
                 }

             }

O finally…
O finally é como nome já diz o bloco de finalização. Este bloco é executado em qualquer circunstancia. Mesmo que o programa gere uma exceção o bloco finally será executado. A idéia é que existe um escopo rodando mesmo que o erro faça o programa parar… Assim é possivel fazer com que você possa matar conexões ou coisas do tipo, para que essas coisas não consumam carga de processamento e memória.
Ex.:
            Com o uso do bloco finally…
            public void testeMetodo(string teste)
            {
                 string Resp = “”;

                 try
                 {

                       Response.Write((Convert.ToInt32(teste))+1);
                       Resp = “Funcionou”;

                 }
                 catch (Exception e)
                 {
                      Response.Write(e.Message.ToString());
                      Resp = “Erro…”;
                 }
                 finally
                 {

                      Response.Write(Resp);

                 }

             }
No código mostrado, se o escopo normal for realizado dentro do bloco try, quando ele for executar o finally irá mostrar a mensagem de que funcionou. Caso contrário, quando for executado o catch ele irá mudar o valor para erro e assim quando for executado finally irá ser mostrado esta mensagem na tela.

O throw…
O throw é um complemento aos blocos de código. Ele tem como função explodir uma exceção que pode ou não ser criada pelo usuário.
Ex.:
            Com o uso do throw…
            public void testeMetodo(string teste)
            {
                 string Resp = “”;

                 try
                 {
                       if (teste == null)
                       {

                            throw new ArgumentNullException();

                       }

                       Response.Write((Convert.ToInt32(teste))+1);
                       Resp = “Funcionou”;

                 }
                 catch (Exception e)
                 {
                      Response.Write(e.Message.ToString());
                      Resp = “Erro…”;
                 }
                 finally
                 {

                      Response.Write(Resp);

                 }

             }
No exemplo mostrado é checado se a variável teste está vazia. Caso a mesma esteja vazia é estourada uma exceção de valor NULL, fazendo com que o escopo do programa seja direcionado para o bloco catch.

Bem pessoal, é isso. Aconselho a todos que usem os blocos de tratamento de erros para deixar sua aplicação mais amigável e confiável.

Qualquer tipo de dúvidas é só entrar em contato comigo.

Abraços a todos.

Programa S2B ( GRATUITO )
Saturday, September 20, 2008 6:47 PM

Fala pessoal.
Hoje estou trazendo uma dica quente que é o programa gratuito de iniciativa da Microsoft através dos centros de inovação os famosos MICs.

O programa é o S2B (student to business) ao qual tem o objetivo de fazer a ponte entre as vagas de trabalho e os estudantes da área de tecnologia.

Para isso o programa conta com capacitação nas tecnologias Microsoft sendo elas em Desevolvimento ou Infra-estrutura num total de 84 horas/aula para cada área.
O estudante é quem decide em qual das áreas tem maior afinidade e em qual o mesmo irá querer assistir as aulas e ao final produzir um trabalho de conclusão.

Eu disse no inicio do post que é uma dica quente pois eu mesmo já participei do programa e sou formado pelo mesmo. Aprendi muito e ao final do curso tive contato direto com empresas do ramo da tecnologia conseguindo ser empregado por uma dessas empresas.

Então é isso... Com meu conhecimento de causa eu digo: VALE MUITO A PENA. NÃO DEIXEM DE SE INSCREVER.

Para se inscrever clique aqui...

Para maiores informações sobre o programa visite www.programas2b.com.br

Qualquer informação só perguntar para mim...
danilo_fernandes@msn.com

Abraços...

Validando o FCKeditor
Saturday, August 16, 2008 7:13 PM

A maioria das pessoas que escreve conteúdo para a internet não sabe as tags básicas do HTML como a de quebra de linha (<br />) ou a de espaço (&nbsp).
Porém se não fossem os componentes de editor de texto que surgiram a pouco tempo, muitas dessas pessoas não escreveriam seus blogs ou textos de site, pois ficaria tudo desorganizado.

Um dos componentes deste tipo mais usado hoje em dia é o FCK editor (http://www.fckeditor.net). Porém por ser um componente desenvolvido básicamente para linguagens de script, seu lado compilado como user control para ASP.NET ainda prega algumas peças em quem está começando a conhece-lo e desenvolvendo algum sistema sem tempo para testes prévios.

 Existe uma falha que já é conhecida porém pouco divulgada na internet brasileira, digo isso pois me deparei com o problema e não achei solução nacional, que é o problema da validação de vampo nulo.

No ASP.NET existem componentes prontos de validação e um deles é o RequiredFieldValidator que serve para checar se o campo está nulo. O problema descoberto é que usando o controle citado com o FCK editor a validação não funciona corretamente, apenas diferenciando campo nulo do não nulo quando se executa algum tipo função do próprio FCK.

Depois de muito pesquisar achei uma solução usando o CustomValidator e não mais o RequiredFieldValidator. Segue abaixo a solução:

function ValidatorFCKEditor(sender, args)
{
var oEditor = FCKeditorAPI.__Instances["<%=FCKeditor1.ClientID%>"];
if (oEditor.GetHTML().length>0)
args.IsValid =
true;
else
args.IsValid = false;
}

A função acima é uma função JavaScript que solicita o valor que está no FCK e checa se ele é vaziu ou não. Lembrando que aonde tem "FCKeditor1" deve ser alterado para o nome da sua instancia do FCK na sua página.

O controle de validação vai ficar da seguindo forma:
<asp:CustomValidator ID="CustomValidator1" runat="server"
ClientValidationFunction="ValidatorFCKEditor"
ErrorMessage="O campo texto é obrigatório!">*</asp:CustomValidator>


Dessa forma o seu FCK já terá validação para campo nulo.

 

Espero ter ajudado e qualquer dúvida estarei a disposição....

Abraços

by MSPDanilo | with no comments
Filed under: , ,
Visual Studio Grátis.....
Wednesday, June 11, 2008 12:29 AM
Fala pessoal,

Neste post venho dar uma dica para quem quer programar em .NET e não quer usar produtos PIRATAS...

A Microsoft disponibiliza versões grátis para desenvolvimento em .NET, são elas chamadas de Express...

Quem quiser baixar as versões segue o link para a versão mais nova do Visual Studio, a 2008.

SITE PARA DOWNLOAD

Abraços

Lançamento do SILVERLIGHT 2.0
Tuesday, June 10, 2008 11:59 PM


 

Fala pessoal,

Estava eu dando um olhada geral em alguns blogs e uma coisa me chamou a atenção. O lançamento do Silverlight 2.0.

Para quem ainda não conhece o Silverlight é uma nova tecnologia Microsoft para fazer frente ao Flash da Adobe.

O silverlight 2.0 está em versão beta ainda, porém já existem cases espalhados pela internet inclusive no próprio hotsite da tecnologia (Site oficial do Silverlight).

Basicamente o Silverlight trabalha na integração de uma nova linguagem de marcação chamada XAML e códigos de linguagens suportadas pelo .NET.

Em breve eu trarei informações e exemplos de programas e páginas que trabalham com XAML.

Por hora eu indico o blog do Roberto Sonnino que é um MSP de São Paulo e especialista em XAML e Silverlight.

Abraços

Quem sou.... Quem será???
Tuesday, June 10, 2008 6:12 PM
Olá Pessoal,

Este é meu primeiro post no blog do mutex e como não deixaria de ser o primeiro post sempre fala sobre quem está aqui escrevendo.

Bom, sou desenvolvedor .NET há 4 anos tendo experiência com VB.NET e C#.NET. Atualmente sou estudante de Ciências da Computação na UNIFACS.

Minha área de atuação é ASP.NET e suas novas tecnologias como AJAX e Silverlight. Daqui para a frente eu estarei trazendo informações como data de eventos, novidades das tecnologias Microsoft e um pouco de prática e exemplos de códigos.

Para qualquer tipo de dúvida ou sugestão me mandem um e-mail que assim que eu puder responderei.

É isso, seguem agora os posts que realmente interessam.

Abraços