(resolvido) Problemas Exception2 (obrigado)

5 respostas
jonasjgs2

Caros amigos
observem abaixo as aplicacoes e me ajudem por favor
sou novato e ainda apanhando um pouquinho rs...

primeiro tenho uma classe que se chama conexaobanco
tenho outra que e o usuario
tenho outra que e o usuariodao
e a class principal

quando eu executo a principal
me da um erro de sqlexception

e sai do aplicactivo

eu quero que nao saia do aplicativo
que eu consiga tratar isso na aplicacao

observem as classes ai

e me ajudem por favor

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConexaoBanco {

	public Connection getConnection() {
		try {
			return DriverManager.getConnection(
					"jdbc:sqlserver://localhost:1433;database=mfj21",
					"adminsql", "123");
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}

	}
}
public class Usuario {
	private String usucodigo;
	private String usutipo;
	private String usucodfunc;
	private String usunome;
	private String usuloja;
	private String ususenha;
	private String usuprivilegio;
	private String usutipoimp;
	private String usudirtrab;
	private String usufuncaocaixa;
	private String usugerimp;

	public String getUsucodigo() {
		return usucodigo;
	}

	public void setUsucodigo(String usucodigo) {
		this.usucodigo = usucodigo;
	}

	public String getUsutipo() {
		return usutipo;
	}

	public void setUsutipo(String usutipo) {
		this.usutipo = usutipo;
	}

	public String getUsucodfunc() {
		return usucodfunc;
	}

	public void setUsucodfunc(String usucodfunc) {
		this.usucodfunc = usucodfunc;
	}

	public String getUsunome() {
		return usunome;
	}

	public void setUsunome(String usunome) {
		this.usunome = usunome;
	}

	public String getUsuloja() {
		return usuloja;
	}

	public void setUsuloja(String usuloja) {
		this.usuloja = usuloja;
	}

	public String getUsusenha() {
		return ususenha;
	}

	public void setUsusenha(String ususenha) {
		this.ususenha = ususenha;
	}

	public String getUsuprivilegio() {
		return usuprivilegio;
	}

	public void setUsuprivilegio(String usuprivilegio) {
		this.usuprivilegio = usuprivilegio;
	}

	public String getUsutipoimp() {
		return usutipoimp;
	}

	public void setUsutipoimp(String usutipoimp) {
		this.usutipoimp = usutipoimp;
	}

	public String getUsudirtrab() {
		return usudirtrab;
	}

	public void setUsudirtrab(String usudirtrab) {
		this.usudirtrab = usudirtrab;
	}

	public String getUsufuncaocaixa() {
		return usufuncaocaixa;
	}

	public void setUsufuncaocaixa(String usufuncaocaixa) {
		this.usufuncaocaixa = usufuncaocaixa;
	}

	public String getUsugerimp() {
		return usugerimp;
	}

	public void setUsugerimp(String usugerimp) {
		this.usugerimp = usugerimp;
	}

}
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UsuarioDao {

	private Connection con;

	public UsuarioDao() {
		this.con = new ConexaoBanco().getConnection();
	}

	public Usuario getUsuario(String usucodigo) {
		Usuario usuario = new Usuario();

		try {
			PreparedStatement smtm = con
					.prepareStatement("select * from usuarios where usucodigo = "
							+ usucodigo);
			ResultSet rs = smtm.executeQuery();

			if (rs.next()) {
				usuario.setUsucodigo(rs.getString("usucodigo"));
				usuario.setUsunome(rs.getString("usunome"));
				usuario.setUsutipo(rs.getString("usutipo"));
				usuario.setUsucodfunc(rs.getString("usucodfunc"));
				usuario.setUsuloja(rs.getString("usuloja"));
				usuario.setUsusenha(rs.getString("ususenha"));
				usuario.setUsuprivilegio(rs.getString("usuprivilegio"));
				usuario.setUsutipoimp(rs.getString("usutipoimp"));
				usuario.setUsudirtrab(rs.getString("usudirtrab"));
				usuario.setUsufuncaocaixa(rs.getString("usufuncaocaixa"));
				usuario.setUsugerimp(rs.getString("usugerimp"));
			}
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}

		return usuario;
	}
}
public class Principal {
	public static void main(String[] args) {
		UsuarioDao UsuDao = new UsuarioDao();

		try {
			UsuDao.getUsuario("eu");
		} catch (RuntimeException e) { 
			System.out.println("erro");         /// nao executa
		}

	}
}

O ERRO QUE RETORNA EU ATE SEI QUAL E
SIMPLESMENTE EU NAO COLOQUEI O JAR DO SQL

porem eu quero tratar esse erro na minha aplicacao

e nao sei como

eu quero que na classe principal de a mensagem dizendo o erro

mas nao consigo

5 Respostas

aix

Ola amigo,
não precisa interromper o programa, dentro do bloco catch você pode tentar fazer outras coisas, ao invés de lançar a exception você pode tentar se conectar a outros bancos, pode não mandar mostrar nada(esconder o erro), pode tratar a mensagem de erro e mandar para a tela algo amigavel(ex: drive de conexão não encontrado),

catch (SQLException e) {  
            // aqui você pode tentar fazer outras coisas antes de lançar a Exception.... 
            throw new RuntimeException(e);  
        }

espero ter ajudado, abraços.

jonasjgs2

amigo, o runtimeexception(e)
ele interrompe a aplicacao e isso?

porque eu queria tratar o erro na classe
principal

aix

sim interrompe, nada impede de você tratar o erro na classe principal(ou qualquer outro lugar), basta fazer um try cacth na chamada do seu SQL.

jonasjgs2

meus amigos que alteracao
eu precisava fazer para tratar a excessao
na classe principal

aix

segue:

public class Principal {
	public static void main(String[] args) {
                try{
        // aqui vai dar erro porque você recebe a conexão no construtor do seu DAO
                   UsuarioDao UsuDao = new UsuarioDao();
                } catch (RuntimeException e) {
                      // aqui deve dar ao erro, faça suas coisas aqui.
                }
		try {
			UsuDao.getUsuario("eu");
		} catch (RuntimeException e) { 
			System.out.println("erro");         /// nao executa
		}

	}
}
Criado 28 de outubro de 2011
Ultima resposta 28 de out. de 2011
Respostas 5
Participantes 2