Exceções

Boa tarde pessoal.

Tenho a seguinte situação abaixo:

Minha pergunta refere-se as Exceptions, como no metodo que chamo o execute eu capturo/trato exceptions, e no metodo chamado eu também capturo exceptions e imprimo o erro etc… minha lógica vai funcionar no metodo chamador?

  • Metodo que chama

try { //Executa query db.executeQuery(query.toString()); //Aplicou com sucesso linha++; }catch(Exception se){ //Não aplicou qnAplic += iLinha + 1; queryNAplic += debugar.getMsg()+ " QUERY: " + query.toString() + " \t| LINHA nº: " + qnAplic + "\n"; }

  • Metodo chamado
public ResultSet executeQuery(String query) {
    ResultSet rs = null;
    try {
    	debug = debugar.getDebug();
    	if(debug.trim().compareToIgnoreCase("db.196") == 0) {
    		System.out.println("\nDatabase.197: Texto = \n" + query); 
    	}
    	Statement _stmt = connection.createStatement();
    	debug = debugar.getDebug();
    	if(debug.trim().compareToIgnoreCase("db.204") == 0) {
    		System.out.println("\nDatabase.261: Texto = \n" + query.toString()); 
    	}
    	//Executando a query
    	rs = _stmt.executeQuery(query.toString());

    }catch(SQLException e) {
    	String msg = e.toString();
        if((msg.trim().indexOf("There are no matching") == -1) &&  
           (msg.trim().indexOf("No result set for this") == -1)&&
           (msg.trim().indexOf("No ResultSet set") == -1)) {
        	aplerror = true;
        	System.out.println(debugar.getMsg() + " Database.Err.210: " + e.getMessage() );
        	System.out.println(debugar.getMsg() + " *********************************************************************\n ");
        }else{
        	System.out.println(debugar.getMsg() + " Database - ExecuteQuery - ln 201.: Erro código DataBase --> " + e.getErrorCode());
        	System.out.println(debugar.getMsg() + " *********************************************************************\n ");
        }
    //Database.Err.189: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]There are no matching rows on which to report.
    }catch(Exception se) {
    	aplerror = true;
    	System.out.println(debugar.getMsg() + " Database.Err.215:" + se.getMessage());
    	System.out.println(debugar.getMsg() + " *********************************************************************\n ");
    }
    return rs; 

Não, pois no método executeQuery você não está dando throws em nenhuma exception…

ele nunca vai cair no catch do chamador.

[]´s

Ok Rodrigo. Só para confirmar, então devo somente lançar as exceptions, como abaixo?

public ResultSet executeQuery(String query) throws SQLException {

seu metodo nao está gerando exceção… em todas tu faz um try

entao, dentro dos catch(Exception e) {
// tu deve Gerar uma excecao:
throw new Exception(“Exceção aconteceu!”);

sacou?!?
acho que é isso, flws!

Vlw Josue.

Vou fazer alguns testes. Vlw pela força.

Obrigado á todos.

Rodrigo

RESOLVIDO!!!