<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Washington Nascimento</title>
	<atom:link href="http://washingtonascimento.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://washingtonascimento.wordpress.com</link>
	<description></description>
	<lastBuildDate>Tue, 27 Dec 2011 04:02:32 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='washingtonascimento.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Washington Nascimento</title>
		<link>http://washingtonascimento.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://washingtonascimento.wordpress.com/osd.xml" title="Washington Nascimento" />
	<atom:link rel='hub' href='http://washingtonascimento.wordpress.com/?pushpress=hub'/>
		<item>
		<title>De volta&#8230;</title>
		<link>http://washingtonascimento.wordpress.com/2011/12/27/devolta/</link>
		<comments>http://washingtonascimento.wordpress.com/2011/12/27/devolta/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 03:22:45 +0000</pubDate>
		<dc:creator>Washington Nascimento</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://washingtonascimento.wordpress.com/?p=64</guid>
		<description><![CDATA[É pessoal, depois de muito tempo sem escrever nada por aqui, estou querendo voltar a escrever à tona e parar de ficar só na promessa. Muita coisa aconteceu nesse pouco tempo que fiquei sem escrever, mudei bastante minha vida profissional, enfrentando novas frentes de trabalho e novas tecnologias. Mas é extremamente gratificante poder trabalhar com [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=washingtonascimento.wordpress.com&amp;blog=11182366&amp;post=64&amp;subd=washingtonascimento&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">É pessoal, depois de muito tempo sem escrever nada por aqui, estou querendo voltar a escrever à tona e parar de ficar só na promessa.</p>
<p style="text-align:center;"><a href="http://washingtonascimento.files.wordpress.com/2011/12/de-volta-para-o-futuro.jpg"><img class="aligncenter  wp-image-68" style="border:1px solid black;" title="de-volta-para-o-futuro" src="http://washingtonascimento.files.wordpress.com/2011/12/de-volta-para-o-futuro.jpg?w=405&#038;h=284" alt="" width="405" height="284" /></a></p>
<p style="text-align:justify;">Muita coisa aconteceu nesse pouco tempo que fiquei sem escrever, mudei bastante minha vida profissional, enfrentando novas frentes de trabalho e novas tecnologias. Mas é extremamente gratificante poder trabalhar com novas tecnologias, sair da zona de conforto e enfrentar novos desafios. Nesse tempo tive a oportunidade de conhecer muitas coisas novas, que até então eu só conhecia na teoria, outras nem isso, mas estou crescendo bastante com isso, e apesar de requerer mais esforço, dedicação e muito mais tempo de estudo, vale muito a pena.</p>
<p style="text-align:justify;">Há algum tempo mudei bastante meu foco que era trabalhar somente com desenvolvimento Java e comecei a trabalhar com integração de sistemas, com base nos conceitos de SOA e BPM, e há aproximadamente 3 meses meu foco de trabalho mudou novamente, e estou tendo a oportunidade de atuar em projetos de Business Intelligence. Para quem não conhece irei explicar um pouco todos esses conceitos em próximos artigos.</p>
<p style="text-align:justify;">Atualmente estou trabalhando na <a title="Splenda" href="http://www.splendaconsultoria.com.br" target="_blank">Splenda</a>, uma empresa de consultoria em TI relativamente nova, mas que está alavancando seu crescimento em uma velocidade incrível e o melhor de tudo é que estou tendo a oportunidade de fazer parte disso tudo, e podendo trabalhar com pessoas fantásticas!</p>
<p style="text-align:justify;">Também estou ajudando a manter outros dois blogs, e convido cada um de vocês a visitá-los. Um deles é sobre a ferramenta open source de integração <a title="Talend" href="http://www.talend.com" target="_blank"><strong>Talend</strong></a>, é uma ferramenta simplesmente fantástica, o endereço para acesso é <strong><a href="http://www.talendbrasil.com.br/">www.talendbrasil.com.br</a></strong>. O segundo é sobre o appliance de Data Warehouse <a title="Netezza" href="http://www.netezza.com/" target="_blank"><strong>Netezza</strong></a>, que realiza o acesso e consultas de dados na casa do terabytes em uma velocidade mínima, a url para acesso é <strong><a href="http://www.netezzabrasil.com.br/">www.netezzabrasil.com.br</a></strong>.</p>
<p style="text-align:justify;"> O objetivo inicial desse blog era falar sobre a tecnologia java, e sim, sempre que puder continuarei a escrever sobre ela, mas irei entrar em muitos outros assuntos, não restringirei o blog só a Java, quero abranger esse blog para assuntos relacionados como carreira, negócios, e tudo mais o que aparecer.</p>
<p style="text-align:justify;">Basicamente é isso, espero poder ampliar o leque de conhecimento disponibilizado aqui no blog, e que possa facilitar e agregar conhecimento na vida de quem passar por aqui. Em próximos posts vou falar sobre algumas ferramentas open source nas áreas de SOA, BPM e BI, com review de todas elas, alguns exemplos, etc. E espero poder contar a ajuda de vocês, com críticas e sugestões, etc. E não deixem de acessar: <a title="Netezza Brasil" href="http://www.netezzabrasil.com.br" target="_blank">Netezza Brasil</a> e <a title="Talend Brasil" href="http://www.talendbrasil.com.br" target="_blank">Talend Brasil</a>.</p>
<p style="text-align:justify;">Um grande abraço a todos!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/washingtonascimento.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/washingtonascimento.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/washingtonascimento.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/washingtonascimento.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/washingtonascimento.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/washingtonascimento.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/washingtonascimento.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/washingtonascimento.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/washingtonascimento.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/washingtonascimento.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/washingtonascimento.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/washingtonascimento.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/washingtonascimento.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/washingtonascimento.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=washingtonascimento.wordpress.com&amp;blog=11182366&amp;post=64&amp;subd=washingtonascimento&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://washingtonascimento.wordpress.com/2011/12/27/devolta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2b48dd2fa9f8f9b6537db3d96902a5fc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">washingtonascimento</media:title>
		</media:content>

		<media:content url="http://washingtonascimento.files.wordpress.com/2011/12/de-volta-para-o-futuro.jpg" medium="image">
			<media:title type="html">de-volta-para-o-futuro</media:title>
		</media:content>
	</item>
		<item>
		<title>Tratamento de Exceções parte 02</title>
		<link>http://washingtonascimento.wordpress.com/2010/04/19/excecoes_pt2/</link>
		<comments>http://washingtonascimento.wordpress.com/2010/04/19/excecoes_pt2/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 17:59:19 +0000</pubDate>
		<dc:creator>Washington Nascimento</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://washingtonascimento.wordpress.com/?p=50</guid>
		<description><![CDATA[Agora que terminamos uma breve teoria sobre como funcionam as exceções em Java, irei abordá-las de forma prática, como criar, tratar e lançar nossas exceções. Supomos que iremos criar um módulo de manutenção de clientes (incluir, excluir, recuperar e atualizar), e convenhamos que ao efetuar tais processos possam ocorrer erros, como tentar recuperar um cliente e o mesmo não constar no banco de dados, incluir um cliente já existente, efetuar login e os dados estarem incorretos, etc.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=washingtonascimento.wordpress.com&amp;blog=11182366&amp;post=50&amp;subd=washingtonascimento&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Agora que terminamos uma breve teoria sobre como funcionam as exceções em Java, irei abordá-las de forma prática, como criar, tratar e lançar nossas exceções.</p>
<p>Supomos que iremos criar um módulo de manutenção de clientes (incluir, excluir, recuperar e atualizar), e convenhamos que ao efetuar tais processos possam ocorrer erros, como tentar recuperar um cliente e o mesmo não constar no banco de dados, incluir um cliente já existente, efetuar login e os dados estarem incorretos, etc. Então criaremos uma exceção genérica que representa os erros que podem ocorrer com o nosso módulo de manutenção de clientes.</p>
<p>Para criarmos nossa exceção basta estender a classe Exception, presente no pacote java.lang.Exception, da seguinte forma:</p>
<p><pre class="brush: java;">

public class UserException extends Exception {

     public  UserException() {
          super();
     }

      public  UserException(String message) {
          super(message);
      }

 }
</pre></p>
<p>E pronto, nossa exceção está criada! Agora vamos criar um método que valida um usuário, ou seja, toda vez que quisermos adicionar, recuperar, etc, passaremos para os respectivos métodos um modo de validar um usuário para verificar se ele possui dados válidos como id, nome, login, password, etc.</p>
<p><pre class="brush: java;">

public void validateUser(User user) throws UserException {

     boolean validate = true;
     String msg = &quot;&quot;;
     if (user.getName() == null) {
         msg = &quot;Invalid Name!&quot;;
         validate = false;
     } else if (user.getPassword() == null) {
         msg = &quot;Password is Empty!&quot;;
         validate = false;
     }
     if (!validate) {
         throw new UserException(msg);
     }

}
</pre></p>
<p>Analisando o código, na declaração do método utilizamos a palavra chave <strong>throws</strong>, isso significa que todo método que utilizar o “validateUser()” terá que tratar a exceção ou então utilizar a palavra chave <strong>throws </strong>novamente no cabeçalho do método para informar que ele não irá tratar a exceção naquele momento, ou seja estamos declarando nossa exceção. Na linha 22, utilizo a palavra chave <strong>throw</strong>, que indica que a exceção será lançada quando chegar naquela linha, e passo como parâmetro da exceção a minha mensagem de erro personalizada. Vejamos como funcionam o tratamento com o bloco <strong>try</strong>, <strong>catch</strong>, e a declaração utilizando <strong>throws</strong>.</p>
<p>Supomos que temos classe que responsável por efetuar o login do usuário chamada LoginUser, na qual possui um método para efetuar login, vejamos a versão do método utilizando try – catch:</p>
<p><pre class="brush: java;">

public boolean login(User user) {

      boolean validate = false;
      try {
          new User().validateUser(user);
          validate = true;
          System.out.println(&quot;Success on Login!&quot;);
      } catch (UserException ex) {
          System.out.println(ex.getMessage());
          validate = false;
      }
      return validate;
 }

</pre></p>
<p>Nessa versão do método login nós utilizamos o método validateUser() da classe User, e tratamos a exceção utilizando o bloco try – catch. Dentro do bloco<strong> </strong>validamos o usuário, caso tudo tenha ocorrido corretamente ele retorna verdadeiro, caso contrário, a execução entrará no bloco catch e lançará uma mensagem utilizando o método getMessage() da superclasse de todas as exceções e erros, Throwable. Vejamos agora a versão do método login() utilizando a palavra chave <strong>throws </strong>e deixando o tratamento para outro momento, efetuando somente a declaração da exceção.</p>
<p><pre class="brush: java;">

public void login(User user) throws UserException {
      new User().validateUser(user);
}

</pre></p>
<p>Nesse caso como não tratamos a exceção, simplesmente declaramos que ela pode ser lançada é necessário adicionar <strong>throws nomeDaExceção, </strong>no cabeçalho do método, lembrando que dessa forma eu estou deixando para a exceção ser tratada na próxima utilização do método login, diferente caso ao tivesse tratado a exceção.</p>
<p>Lembrando que também poderíamos ter utilizado a palavra chave <strong>throw</strong>(não confundam com <strong>throws</strong>), simplesmente para lançar nossa exceção em determinada parte do código, como fizemos na segunda listagem desse artigo.</p>
<p>Finalizamos aqui uma visão prática sobre o mecanismo de exceções em Java, sendo que essa é só a ponta do iceberg, pois ainda há bastante conteúdo sobre o assunto para se discutir, mas por hora fico por aqui, espero que tenham gostado e principalmente entendido, até o próximo artigo.</p>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;overflow:hidden;"><!--[if gte mso 9]&gt;  Normal 0   21   false false false  PT-BR X-NONE X-NONE                           &lt;![endif]--><!--[if gte mso 9]&gt;                                                                                                                                            &lt;![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 415 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-520092929 1073786111 9 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:10.0pt; 	margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:595.3pt 841.9pt; 	margin:70.85pt 3.0cm 70.85pt 3.0cm; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]&gt; &lt;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:&quot;Tabela normal&quot;; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:&quot;Times New Roman&quot;; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:&quot;Times New Roman&quot;; 	mso-bidi-theme-font:minor-bidi;} --> <!--[endif]--></p>
<p class="MsoNormal" style="line-height:normal;"><span style="font-size:12pt;font-family:&amp;">Agora que terminamos uma breve teoria sobre como funcionam as exceções em Java, irei abordá-las de forma prática, como criar, tratar e lançar nossas exceções.</span></p>
<p class="MsoNormal" style="line-height:normal;"><span style="font-size:12pt;font-family:&amp;">Supomos que iremos criar um módulo de manutenção de clientes (incluir, excluir, recuperar e atualizar), e convenhamos que ao efetuar tais processos possam ocorrer erros, como tentar recuperar um cliente e o mesmo não constar no banco de dados, incluir um cliente já existente, efetuar login e os dados estarem incorretos, etc. Então criaremos uma exceção genérica que representa os erros que podem ocorrer com o nosso módulo de manutenção de clientes.</span></p>
<p class="MsoNormal" style="line-height:normal;"><span style="font-size:12pt;font-family:&amp;">Para criarmos nossa exceção basta estender a classe Exception, presente no pacote java.lang.Exception, da seguinte forma:</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><pre class="brush: java;">

public class UserException extends Exception {

public  UserException() {

super();
}

public  UserException(String message) {

super(message);
}

}

</pre></p>
<p></span></p>
<p class="MsoNormal" style="line-height:normal;"><span style="font-size:12pt;font-family:&amp;">E pronto, nossa exceção está criada! Agora vamos criar um método que valida um usuário, ou seja, toda vez que quisermos adicionar, recuperar, etc, passaremos para os respectivos métodos um modo de validar um usuário para verificar se ele possui dados válidos como id, nome, login, password, etc.</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><pre class="brush: java;">

public void validateUser(User user) throws UserException {

boolean validate = true;

String msg = &quot;&quot;;

if (user.getName() == null) {

msg = &quot;Invalid
Name!&quot;;

validate = false;

} else if (user.getPassword() ==
null) {

msg = &quot;Password is
Empty!&quot;;

validate = false;
}

if (!validate) {

throw new UserException(msg);
}

}

</pre></p>
<p></span></p>
<p class="MsoNormal" style="line-height:normal;"><span style="font-size:12pt;font-family:&amp;">Analisando o código, na declaração do método utilizamos a palavra chave <strong>throws</strong>, isso significa que todo método que utilizar o “validateUser()” terá que tratar a exceção ou então utilizar a palavra chave <strong>throws </strong>novamente no cabeçalho do método para informar que ele não irá tratar a exceção naquele momento, ou seja estamos declarando nossa exceção. Na linha 22, utilizo a palavra chave <strong>throw</strong>, que indica que a exceção será lançada quando chegar naquela linha, e passo como parâmetro da exceção a minha mensagem de erro personalizada. Vejamos como funcionam o tratamento com o bloco <strong>try</strong>, <strong>catch</strong>, e a declaração utilizando <strong>throws</strong>.</span></p>
<p class="MsoNormal" style="line-height:normal;"><span style="font-size:12pt;font-family:&amp;">Supomos que temos classe que responsável por efetuar o login do usuário chamada LoginUser, na qual possui um método para efetuar login, vejamos a versão do método utilizando try – catch:</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><pre class="brush: java;">

public boolean login(User user) {

boolean validate = false;

try {

new User().validateUser(user);

validate = true;

System.&lt;em&gt;out&lt;/em&gt;.println(&quot;Success on Login!&quot;);

} catch (UserException ex) {

System.&lt;em&gt;out&lt;/em&gt;.println(ex.getMessage());
validate = false;
}
return validate;

}

</pre></p>
<p></span></p>
<p class="MsoNormal" style="line-height:normal;"><span style="font-size:12pt;font-family:&amp;">Nessa versão do método login nós utilizamos o método validateUser() da classe User, e tratamos a exceção utilizando o bloco try – catch. Dentro do bloco<strong> </strong>validamos o usuário, caso tudo tenha ocorrido corretamente ele retorna verdadeiro, caso contrário, a execução entrará no bloco catch e lançará uma mensagem utilizando o método getMessage() da superclasse de todas as exceções e erros, Throwable. Vejamos agora a versão do método login() utilizando a palavra chave <strong>throws </strong>e deixando o tratamento para outro momento, efetuando somente a declaração da exceção.</span></p>
<p class="MsoNormal" style="margin-bottom:.0001pt;line-height:normal;"><span style="font-size:10pt;font-family:&amp;" lang="EN-US"><pre class="brush: java;">

public void login(User user) throws UserException {
new User().validateUser(user);
}

</pre></p>
<p></span></p>
<p class="MsoNormal" style="line-height:normal;"><span style="font-size:12pt;font-family:&amp;">Nesse caso como não tratamos a exceção, simplesmente declaramos que ela pode ser lançada é necessário adicionar <strong>throws nomeDaExceção, </strong>no cabeçalho do método, lembrando que dessa forma eu estou deixando para a exceção ser tratada na próxima utilização do método login, diferente caso ao tivesse tratado a exceção.</span></p>
<p class="MsoNormal" style="line-height:normal;"><span style="font-size:12pt;font-family:&amp;">Lembrando que também poderíamos ter utilizado a palavra chave <strong>throw</strong>(não confundam com <strong>throws</strong>), simplesmente para lançar nossa exceção em determinada parte do código, como fizemos na listagem <strong>tal</strong>.</span></p>
<p class="MsoNormal" style="line-height:normal;"><span style="font-size:12pt;font-family:&amp;">Finalizamos aqui uma visão prática sobre o mecanismo de exceções em Java, sendo que essa é só a ponta do iceberg, pois ainda há bastante conteúdo sobre o assunto para se discutir, mas por hora fico por aqui, espero que tenham gostado e principalmente entendido, até o próximo artigo.</span></p>
<p class="MsoNormal">
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/washingtonascimento.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/washingtonascimento.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/washingtonascimento.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/washingtonascimento.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/washingtonascimento.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/washingtonascimento.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/washingtonascimento.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/washingtonascimento.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/washingtonascimento.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/washingtonascimento.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/washingtonascimento.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/washingtonascimento.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/washingtonascimento.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/washingtonascimento.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=washingtonascimento.wordpress.com&amp;blog=11182366&amp;post=50&amp;subd=washingtonascimento&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://washingtonascimento.wordpress.com/2010/04/19/excecoes_pt2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2b48dd2fa9f8f9b6537db3d96902a5fc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">washingtonascimento</media:title>
		</media:content>
	</item>
		<item>
		<title>Tratamento de Exceções parte 01</title>
		<link>http://washingtonascimento.wordpress.com/2010/03/07/excecoes_pt1/</link>
		<comments>http://washingtonascimento.wordpress.com/2010/03/07/excecoes_pt1/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 02:05:16 +0000</pubDate>
		<dc:creator>Washington Nascimento</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://washingtonascimento.wordpress.com/?p=14</guid>
		<description><![CDATA[Qual programador nunca se deparou com erros em código e teve de manipular esses erros de forma trabalhosa, complexa e muitas vezes comprometendo a inteligibilidade do código? A linguagem Java fornece um mecanismo de tratamento de erros que permite ao desenvolvedor a produção de códigos eficientes e inteligíveis: o tratamento de exceções. Na primeira parte [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=washingtonascimento.wordpress.com&amp;blog=11182366&amp;post=14&amp;subd=washingtonascimento&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Qual programador nunca se deparou com erros em código e teve de manipular esses erros de forma trabalhosa, complexa e muitas vezes comprometendo a inteligibilidade do código? A linguagem Java fornece um mecanismo de tratamento de erros que permite ao desenvolvedor a produção de códigos eficientes e inteligíveis: o tratamento de exceções.</p>
<p>Na primeira parte desse artigo irei abordar de forma sucinta como funciona o tratamento de exceções em Java, como manipular, criar e lançar.</p>
<p><strong><span style="font-size:large;">O que é?</span></strong></p>
<p>É uma ocorrência que altera o fluxo normal de um programa, algo que foge do fluxo padrão.</p>
<p>A estrutura básica para o tratamento de uma exceção é formada pelas seguintes palavras-chave:</p>
<ul>
<li><strong>try</strong> – É usado para inserir um código que possa causar alguma exceção.</li>
<li><strong>catch</strong> – Manipula a exceção.</li>
<li><strong>finally</strong> – Sempre será executado, independente do que acontecer  dentro do bloco try-catch.</li>
</ul>
<p>Ex.:</p>
<p><strong><span style="font-size:medium;">try</span></strong>{</p>
<p>Coloque aqui código que poderá resultar em algum erro.</p>
<p>}<strong><span style="font-size:medium;">catch</span></strong>(Exceção e){</p>
<p>Coloque aqui código que manipula a exceção.</p>
<p>}<strong><span style="font-size:medium;">finally</span></strong>{</p>
<p>Coloque aqui código que sempre será executado independente do que ocorra dentro do bloco try-catch-finally.</p>
<p>}</p>
<p>Existem dois tipos de exceções: verificadas e não verificadas, vejamos a árvore de herança das exceções e depois analisaremos e diferenciaremos seus tipos.</p>
<div id="attachment_18" class="wp-caption aligncenter" style="width: 469px"><a href="http://washingtonascimento.files.wordpress.com/2010/03/exceptions-22.jpg"><img class="size-full wp-image-18" title="Exceptions" src="http://washingtonascimento.files.wordpress.com/2010/03/exceptions-22.jpg?w=620" alt=""   /></a><p class="wp-caption-text">Hierarquia de exceções</p></div>
<p><strong>Throwable</strong> é a classe pai de todas as <strong>Exceções</strong>, e dela saem duas subclasses principais “<strong>Error</strong>” e “<strong><span style="font-style:medium;">Exception</span></strong>”. As classes derivadas de Error significam erros que não ocorrem normalmente e que não são causadas por erros de lógica no programa, e sim por problemas externos como falta de memória, geralmente não são manipulados. As exceções são derivadas da classe Exception. Existem dois tipos de exceções, as verificadas e não verificadas. Todas as subclasses de <strong>RuntimeException </strong>(incluindo ela mesma) são consideradas exceções não verificadas, ou seja, mesmo se você declarar uma RuntimeException em seu código, você não será obrigado a manipulá-la. Sendo que a maioria das RuntimeExceptions terão sua origem em um problema de lógica do seu programa, um exemplo é a classe <strong>NullPointerException</strong>.</p>
<p>As demais exceções derivadas de Exception são as chamadas exceções verificadas, ou seja, podem ser manipuladas com cláusulas try-catch, declaradas ou lançadas com a palavra chave “<strong>throws</strong>”.</p>
<p>Algumas observações são válidas:</p>
<p>-Não é válido usar uma claúsula try sem uma catch ou finally (É possível omitir uma cláusula catch ou uma finally, mas não as duas);</p>
<p>-Não é válido usar uma cláusula catch sem uma try.</p>
<p>-Qualquer claúsula finally deve vir imediatamente após a claúsula catch ou após a try, caso não haja uma cláusula catch.</p>
<p>Por enquanto fico por aqui, espero que tenham gostado, e no próximo artigo citarei de forma prática o tratamento de exceções.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/washingtonascimento.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/washingtonascimento.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/washingtonascimento.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/washingtonascimento.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/washingtonascimento.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/washingtonascimento.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/washingtonascimento.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/washingtonascimento.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/washingtonascimento.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/washingtonascimento.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/washingtonascimento.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/washingtonascimento.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/washingtonascimento.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/washingtonascimento.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=washingtonascimento.wordpress.com&amp;blog=11182366&amp;post=14&amp;subd=washingtonascimento&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://washingtonascimento.wordpress.com/2010/03/07/excecoes_pt1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2b48dd2fa9f8f9b6537db3d96902a5fc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">washingtonascimento</media:title>
		</media:content>

		<media:content url="http://washingtonascimento.files.wordpress.com/2010/03/exceptions-22.jpg" medium="image">
			<media:title type="html">Exceptions</media:title>
		</media:content>
	</item>
	</channel>
</rss>
