Commit 51ee72b7 authored by PABLO's avatar PABLO
Browse files

Foi padronizado as exceções geradas pela classe ViaCEP em ViaCEPException.

parent a11cad77
......@@ -5,9 +5,9 @@ http://viacep.com.br/
![alt tag](http://www.parg.com.br/imagens.parg.com.br/viacep.png)
## O que é?
Este é um projeto de Java/Swing feito no **NetBeans IDE 8.0.2** usando a **JDK 8**, mas que eu acredito que pode ser adaptado para qualquer JDK ou versão do Java.
Este é um projeto de Java feito no **NetBeans IDE 8.0.2** usando a **JDK 8**, mas que eu acredito que pode ser adaptado para qualquer JDK ou versão do Java.
O projeto serve somente como teste para ver como funciona o procedimento para solictar um CEP e interpletar o JSON de retorno do **ViaCEP**, sendo que a classe principal do projeto é a *ViaCEP* (**ViaCEP.java**) que tem como dependência as classes da biblioteca **org.json** "http://www.json.org/json-pt.html".
O projeto é uma biblioteca jar que tem como teste o projeto ViaCEP-teste(https://github.com/parg-programador/ViaCEP-teste) para ver como funciona o procedimento para solictar um CEP e interpletar o JSON de retorno do **ViaCEP**, sendo que a classe principal do projeto é a *ViaCEP* (**ViaCEP.java**) que tem como dependência as classes da biblioteca **org.json** "http://www.json.org/json-pt.html".
## Onde?
Você pode estar se perguntando onde você pode usar essa classe e a resposta é em qualquer lugar que o Java permite, em minha experiência pessoal já usei em *Java Web JSP*, *Java/Swing*, *Android*.
......
......@@ -7,13 +7,17 @@
package viacep;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import org.json.JSONObject;
/**
* Classe java para obter um CEP no ViaCEP
*
* @author Pablo Alexander da Rocha Gonçalves
*/
public class ViaCEP {
......@@ -40,24 +44,24 @@ public class ViaCEP {
this.Ibge = null;
this.Gia = null;
}
/**
* Constrói uma nova classe e busca um CEP no ViaCEP
*
* @param cep
* @throws Exception caso ocorra algum erro
* @throws viacep.ViaCEPException caso ocorra algum erro
*/
public ViaCEP(String cep) throws Exception {
public ViaCEP(String cep) throws ViaCEPException {
this.buscar(cep);
}
/**
* Busca um CEP no ViaCEP
*
* @param cep
* @throws Exception caso ocorra algum erro
* @throws viacep.ViaCEPException caso ocorra algum erro
*/
public final void buscar(String cep) throws Exception {
public final void buscar(String cep) throws ViaCEPException {
this.CEP = cep;
// define a url
......@@ -76,7 +80,7 @@ public class ViaCEP {
this.Ibge = obj.getString("ibge");
this.Gia = obj.getString("gia");
} else {
throw new Exception("Não foi possível encontrar o CEP");
throw new ViaCEPException("Não foi possível encontrar o CEP", cep);
}
}
......@@ -133,20 +137,20 @@ public class ViaCEP {
public String getUf() {
return this.Uf;
}
/**
* Retorna o Ibge
*
* @return
*
* @return
*/
public String getIbge() {
return this.Ibge;
}
/**
* Retorna a Gia
*
* @return
*
* @return
*/
public String getGia() {
return this.Gia;
......@@ -157,21 +161,28 @@ public class ViaCEP {
*
* @param urlToRead endereço
* @return conteúdo remoto
* @throws Exception caso ocorra algum erro
* @throws viacep.ViaCEPException caso ocorra algum erro
*/
public final String get(String urlToRead) throws Exception {
public final String get(String urlToRead) throws ViaCEPException {
StringBuilder result = new StringBuilder();
URL url = new URL(urlToRead);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
try (BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()))) {
try {
URL url = new URL(urlToRead);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
result.append(line);
}
} finally {
return result.toString();
} catch (MalformedURLException | ProtocolException ex) {
throw new ViaCEPException(ex.getMessage());
} catch (IOException ex) {
throw new ViaCEPException(ex.getMessage());
}
return result.toString();
}
}
/*
* PARG Desenvolvimento de Sistemas
* Pablo Alexander - pablo@parg.com.br
*
* Obtem um CEP no ViaCEP
*/
package viacep;
/**
* Classe para registrar uma exceção de CEP
* @author Pablo Alexander da Rocha Gonçalves
*/
public class ViaCEPException extends Exception {
private String CEP;
/**
* Gera uma nova exceção
*
* @param message descrição do erro
*/
public ViaCEPException(String message) {
super(message);
this.CEP = "";
}
/**
* Gera uma nova exceção e define o CEP que foi solicitado
*
* @param message descrição do erro
* @param cep CEP que foi usado durante o processo
*/
public ViaCEPException(String message, String cep) {
super(message);
this.CEP = cep;
}
/**
* Define o CEP da exceção
*
* @param cep
*/
public void setCEP(String cep) {
this.CEP = cep;
}
/**
* Retorna o CEP da exceção
*
* @return String CEP
*/
public String getCEP() {
return this.CEP;
}
/**
* Retorna se tem algum CEP
*
* @return boolean
*/
public boolean hasCEP() {
return !this.CEP.isEmpty();
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment