(resolvido) Problemas Exception2 (obrigado)

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

[code]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);
	}

}

}[/code]

[code]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;
}

}[/code]

[code]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;
}

}[/code]

[code]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
	}

}

}[/code]

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

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.

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

porque eu queria tratar o erro na classe
principal

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.

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

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
		}

	}
}