Tratar Exception de Violação de Foreign Key. Como?

Boa tarde pessoal.

Me deparei com a seguitne situação.
Tenho um cadastro cujo itens estão sendo utilizado por um outro cadastro, logo nao posso excluir do primeiro cadastro por estar em uso, pois terei um violação de foreignkey como abaixo.
A dúvida é como posso tratar esta exception, informado uma janela para o usuário e não mais dar a stacktrace???
Pois sempre que o stacktrace é informada eu não mais consigo realizar novos cadastros.
Segue evento do botão excluir e uma tentativa que realizei ,porém sem sucesso.

Desde já agradeço a todos.

"Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544466. violation of FOREIGN KEY constraint “FKE536B029AF56946” on table “PACIENTES”
Foreign key references are present for the record
"

private void jbtExcluirPronomeActionPerformed(java.awt.event.ActionEvent evt) {
if (JConfirmMessage.showOptionDialog(“Atenção”, “Deseja Excluir Pronome Selecionado?”) == JOptionPane.YES_OPTION) {
int[] selected = jtbPronomes.getSelectedRows();
List<as.com.sisclinica.model.Pronomes> toRemove = new ArrayList<as.com.sisclinica.model.Pronomes>(selected.length);
for (int idx = 0; idx < selected.length; idx++) {
as.com.sisclinica.model.Pronomes p = list.get(jtbPronomes.convertRowIndexToModel(selected[idx]));
toRemove.add§;
entityManager.remove§;
}
list.removeAll(toRemove);
try {
entityManager.getTransaction().commit();
entityManager.getTransaction().begin();
} catch (RollbackException rex) {
JConfirmMessage.showMessageDialog(“Impossivel excluir pronome em uso”, “Atenção”);
java.util.Collection data = query.getResultList();
list.clear();
list.addAll(data);
}
}
}

bom, pelo o que eu vi … deve ser fácil de resolver …

ele tá voltando a excessão FSBException ok?

vc adiciona o FSBException no catch também


try {
entityManager.getTransaction().commit();
entityManager.getTransaction().begin();
} catch (RollbackException rex) {
JConfirmMessage.showMessageDialog("Impossivel excluir pronome em uso", "Atenção");
java.util.Collection data = query.getResultList();
list.clear();
list.addAll(data);
} 
catch(org.firebirdsql.jdbc.FBSQLException e){

System.out.println("erro de chave primaria");

}

pronto .. vc tratou o erro e ele não vai travar

acho q é isso q vc queria rsrsrs se nun for explica melhor ai ahuahua

falows

[quote=javando]bom, pelo o que eu vi … deve ser fácil de resolver …

ele tá voltando a excessão FSBException ok?

vc adiciona o FSBException no catch também

[code]

try {
entityManager.getTransaction().commit();
entityManager.getTransaction().begin();
} catch (RollbackException rex) {
JConfirmMessage.showMessageDialog(“Impossivel excluir pronome em uso”, “Atenção”);
java.util.Collection data = query.getResultList();
list.clear();
list.addAll(data);
}
catch(org.firebirdsql.jdbc.FBSQLException e){

System.out.println(“erro de chave primaria”);

}

pronto … vc tratou o erro e ele não vai travar

acho q é isso q vc queria rsrsrs se nun for explica melhor ai ahuahua

falows

[/code][/quote]

Olá javando obrigado pela ajuda.

O problema estava no tratamento do entity , aki “entityManager.getTransaction().rollback();” ele desativa o entity então devo abri denovo com o begin. Esta foi x da quesão o resto foi só adaptação, como retirar o elemento da lista somente se ele passou pelo commit…segue o código.

   if (JConfirmMessage.showOptionDialog("Atenção", "Deseja Excluir o Pronome Selecionado?") == JOptionPane.YES_OPTION) {
            int selected = jtbPronomes.getSelectedRow();
            Pronomes p = list.get(jtbPronomes.convertRowIndexToModel(selected));
            try {
                entityManager.remove(p);
                entityManager.getTransaction().commit();
                list.remove(p);
            } catch (RollbackException rEx) {
                entityManager.getTransaction().begin();
                entityManager.getTransaction().rollback();
                JConfirmMessage.showMessageDialog("Impossivel excluir pronome em uso!!!", "Atenção");
            } finally {
                entityManager.getTransaction().begin();
                entityManager.flush();
                jbtRecarregarPronome.doClick();
            }
        }

Valeu…