Il s'agit d'un petit exemple qui présente la gestion de base des exceptions, notamment le lancement, la capture, l'assertion et la journalisation.
La gestion des exceptions Java est gérée via cinq mots-clés : try, catch, throw, throws et enfin. Le processus de base consiste à envelopper l'instruction à surveiller avec un bloc d'instruction try. Si une exception se produit dans le bloc d'instruction try, l'exception sera levée. Votre code peut capturer l'exception et la gérer dans le bloc d'instruction catch et dans le bloc d'instruction try. suivant Certaines exceptions générées par le système sont automatiquement levées lorsque Java est en cours d'exécution. Vous pouvez également déclarer la méthode pour lever une exception via le mot-clé throws, puis lancer l'objet d'exception via throw à l'intérieur de la méthode.
Copiez le code comme suit :
paquet com.hongyuan.test ;
importer java.io.IOException ;
importer java.util.logging.Level ;
importer java.util.logging.Logger ;
classe publique ExceptionHandleTest {
statique{
//Activez les assertions et les classes chargées par le chargeur de classes système auront les assertions activées.
ClassLoader.getSystemClassLoader().setDefaultAssertionStatus(true);
}
public static void main (String[] arguments) {
/*
* Lancer, attraper
*/
essayer {
TryCatchTest.run(10, -1);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("============================================ = =========");
//enregistrer
LogerTest.run();
System.out.println("============================================ = =========");
//affirmation
AssertTest.div(3,0);
}
}
/*
*affirmation
*/
classe AssertTest {
public statique double div (int b,int a){
assert a!=0 : "Est-ce que votre professeur du primaire sait si vous l'utilisez ?";
retourner (double)b/a ;
}
}
/*
* enregistrer
*/
classe LogerTest {
Enregistreur statique privé logger=null ;
statique{
// Récupère l'objet journal et définit le niveau de journalisation
logger=Logger.getLogger(LogerTest.class.getName());
logger.setLevel(Niveau.ALL);
}
public static void run(){
//Entrer la méthode
logger.entering(LogerTest.class.getName(), "run");
//Informations générales
logger.info("Viens encore me déranger, j'ai enregistré ce compte !!!");
//avertir
logger.warning("Je suis trop fatigué, je ne peux pas faire ce travail !!!");
//sérieux
logger.log(Level.SEVERE,"J'ai arrêté !!!^O^");
//Méthode de sortie
logger.exiting(LogerTest.class.getName(), "run");
}
}
/*
* capturer, lancer
*/
classe TryCatchTest {
public static void run (int x, int y) lance IOException {
essayer{//obligatoire
si(x<0||y<0){
throw new IllegalArgumentException("Je suis sans voix, que dois-je faire !!!");
}
}catch(Exception e){//facultatif
IOException e1=new IOException("Vous pouvez le découvrir vous-même !");
e1.initCause(e.getCause());
lancer e1 ;
}enfin{//facultatif
System.out.println("Enfin, ils ont vécu une vie heureuse !!! (Fin)");
}
}
}