J'ai le code suivant.Pourquoi le catch block est-il exécuté deux fois pour une seule exception?
try{
Twitter twitter = new Twitter(user,password);
twitter.setStatus(txtStatus.getText());
JOptionPane.showMessageDialog(null, "Success");
txtStatus.setText("");
txtStatus.requestFocus();
}catch(Exception e){
JOptionPane.showMessageDialog(null, "Some Error.\n" +
" If you see this after Success Message..Ignore");
}
Ici même après avoir reçu la boîte de dialogue «Message de réussite», la boîte de dialogue «Some Error» apparaît également. quelle peut être la raison? Le contrôle de débit ne devrait-il pas s'échapper du bloc d'arrêt s'il n'y a pas eu d'erreurs de temps d'exécution?
Même si je reçois également une exception, la boîte de dialogue "Some Error" apparaît deux fois. Pourquoi cela se produit-il?
Que diriez-vous de l'impression actuelle? – ukanth
Astuce du pro: ** JAMAIS 'attraper Exception' comme ceci **. Si vous le faites, votre clause de capture sera comme une boîte de chocolats - vous ne savez jamais ce que vous obtiendrez. – gustafc
* Ne jamais dire jamais * - il y a quelques endroits où vous pouvez faire une 'catch Exception' ou même un' catch Throwable'. Dans le code d'infrastructure, le code d'encapsulation qui appelle un composant avec une instruction catch large empêche l'échec de l'intégralité de l'infrastructure en raison d'un composant. En outre, il s'agit plus d'un «rapport d'erreurs» que d'une «gestion des erreurs» - bien que ce code spécifique soit un mauvais exemple, car il n'existe aucun moyen de savoir exactement ce qu'est l'erreur. Habituellement, le «rapport d'erreurs» est fait dans un endroit globalement dans l'application si possible, et parfois l'erreur est emballée/ré-insérée si nécessaire. – Nate