class NbEcaillesIncorrectException extends Exception { public NbEcaillesIncorrectException() { super(); } }
class NbMaxPangolinException extends Exception { public NbMaxPangolinException() { super("Le nombre maximal de pangolins est atteint..."); } }
class NommageException extends Exception { public NommageException() { super(); } } class CanardException extends Exception { public CanardException() { super(); } }
class PangolinException extends Exception { public PangolinException() { super(); } }
public class TestC { private static final boolean PANGOLIN_EXCEPTION = false; private static final boolean NOMMAGE_EXCEPTION = false; private static final boolean CANARD_EXCEPTION = false; private static final boolean NBECAILLESINCORRECT_EXCEPTION = false; private static final boolean NBMAXPANGOLIN_EXCEPTION = true; private static final boolean ARITHMETIC_EXCEPTION = false; private static final boolean ILLEGAL_ARGUMENT_EXCEPTION = false;
public static void m1() throws CanardException { try { System.out.println("Début de m1()"); m2(); System.out.println("Fin de m1()"); } catch (PangolinException e) { System.out.println("Exception Pangolin (de m1())."); } }
public static void m2() throws PangolinException, CanardException { try { System.out.println("Début de m2()"); m3(); System.out.println("Fin de m2()"); } catch (NbMaxPangolinException e) { System.out.println("Exception nombre max pangolin (de m2())."); throw new IllegalArgumentException(); } finally { System.out.println("Finally de m2()"); } System.out.println("Fin de m2() après le try/catch/finally"); }
public static void m3() throws PangolinException, CanardException,NbMaxPangolinException { try { System.out.println("Début de m3()"); if (PANGOLIN_EXCEPTION) throw new PangolinException(); if (NOMMAGE_EXCEPTION) throw new NommageException(); if (CANARD_EXCEPTION) throw new CanardException(); if (NBECAILLESINCORRECT_EXCEPTION) throw new NbEcaillesIncorrectException(); if (NBMAXPANGOLIN_EXCEPTION) throw new NbMaxPangolinException(); if (ARITHMETIC_EXCEPTION) throw new ArithmeticException(); if (ILLEGAL_ARGUMENT_EXCEPTION) throw new IllegalArgumentException(); System.out.println("Fin de m3()"); } catch (NommageException | NbEcaillesIncorrectException e) { System.out.println("Exception Nommage (de m3())."); } }
public static void main(String[] args) throws CanardException { System.out.println("Début de la méthode principale"); m1(); System.out.println("Fin de la méthode principale"); } }