Criando minha Exception

olá pessoa!
bom é o seguinte: eu tô querendo criar uma classe extendida ao SQLExeption, do tipo InserirRegistroException.
Mas… eu num tenho noção de como fazer. Creio eu q tem q ser assim:

public class InserirRegistroException extends SQLException

mas minha duvida é: como “pegar” o erro?
se alguem tiver um exemplinho bem simplesinho eu agradeço!!!
se num fui mto claro ou falei bobeira, desculpa ae!

vlw desde já!

bem, qual é o erro em especial q tu quer tratar? …um de inserir registro? … eu ja precisei de algo parecido, pq nos meus DAOs eu só testava se dava SQLException, mas eu sempre tenho um método pra inserir, outro pra deletar… etc… e em cada método eu coloco um catch pra uma SQLException, ai, eu sei qual é q ta dando erro usando um println() no catch de cada método…

intaum matheus, os meus metodos de inserir, deletar etc, estaum assim, por exemplo:

public boolean Pesquisa(String strSQL) throws SQLException { Statement Comando = Conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); tblGeneros = Comando.executeQuery(strSQL); return tblGeneros.next(); }

em vez de fazer throws SQLException, seria throws PesquisaException

nesse caso, eu gostaria de criar uma Exception mais especifica, pra usar assim

try { NomeDaClasse.Pesquisa(strSQL); } catch (PesquisaException ex) { System.out.println("aqui eu coloco uma msg de acordo com o erro"); }

vlw!

mas tu pode fazer isso perfeitamente, só extendendo SQLException :slight_smile:

pode ser uma exception q trate qualque tipo de erro, mas eu gostaria de aprender como criar minha propria.

msm assim, obrigado

então ai vai um exemplo de exceção lançada por divisão por zero:

[code]public class DivideByZeroException extends ArithmeticException {

public DivideByZeroException()
{
super( "Attempted to divide by zero" );
}

public DivideByZeroException( String msg )
{
super( msg );
}

}[/code]

…eai vai o programinha pra tu lançá-la:

[code]import java.awt.;
import java.awt.event.
;
import java.text.;
import javax.swing.
;

public class DivideByZeroTest extends JFrame implements ActionListener {

private JTextField input1, input2, output;
private int n1, n2;
private double result;

public DivideByZeroTest()
{
super( "Demonstrando excecoes" );

  getContentPane().setLayout( new GridLayout( 3, 2 ) );

  getContentPane().add( new JLabel( "Numerador: ", SwingConstants.RIGHT ) );

  input1 = new JTextField( 10 );
  getContentPane().add( input1 );

  getContentPane().add( new JLabel( "Denominador: ", SwingConstants.RIGHT ) );

  input2 = new JTextField( 10 );
  getContentPane().add( input2 );

  input2.addActionListener( this );

  getContentPane().add( new JLabel( "Resultado: ", SwingConstants.RIGHT ) );
  output = new JTextField();
  output.setEditable( false );
  getContentPane().add( output );

  setSize( 425, 100 );
  show();

}

public void actionPerformed( ActionEvent e )
{
DecimalFormat precision3 = new DecimalFormat( "0.000" );

  output.setText( "" );

  try {

     n1 = Integer.parseInt( input1.getText() );
     n2 = Integer.parseInt( input2.getText() );

     result = quociente( n1, n2 );
     output.setText( precision3.format( result ) );

  } catch ( NumberFormatException numberFormat ) {

     JOptionPane.showMessageDialog( this, "Digite 2 inteiros neh" );

  } catch ( ArithmeticException ex ) {

     JOptionPane.showMessageDialog( this, ex.toString() );

  }

}

private double quociente( int n1, int n2 ) throws DivideByZeroException
{
if ( n2 == 0 )
throw new DivideByZeroException();

  return ( double ) n1 / n2 ;

}

public static void main( String args[] )
{
DivideByZeroTest win = new DivideByZeroTest();

  win.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

}

}[/code]

vlw ae mateus!!

obrigado pela ajuda :!: :!: