import java.io.*;
/**
 *
 * <p>Titre : div_zero </p>
 * <p>Description : Démonstration d'emploi de 'try', 'catch' et 'finally' </p>
 * <p>Copyright : Copyright (c)~/2A env.  ESSTIN</p>
 * @author  H. Nguyen-Phu
 * @version 1.1  (via l'interface 'retro0') 19.01.2004
 * @since   1.0  (sans interface)           05.11.2002
 */

class div_zero implements retro0  {

/*
class div_zero  {
   public static PrintWriter  jerr = new PrintWriter(System.err, true);
*/

  /**
   * Affich:  Méthode publique d'instance  <==>  Procédure d'affichage d'une chaîne
   * @param uneChaine
   */
   public void Affich(String uneChaine)  {
	jerr.println(uneChaine);
   }
   /**
    * main:  Méthode publique de classe <==> Procédure principale de l'appli.
    * @param arg  Tableau de chaînes de car. pour ligne commande éventuelle
    */
   public static void main(String[] arg)  {

     int zero = 0;
     div_zero unTest = new div_zero();

     unTest.Affich("Emploi de 'try...catch...finally' (c)~/2A env. 2004.01.19 20H57\n");

    try  {
          zero = 2002/zero;
     }
     catch (ArithmeticException ae)  {
      jerr.println("Une exception arithme'tique (non controle'e)  est leve'e !");
      jerr.println("Message   : " + ae.getMessage());
      jerr.println("venant de : " + ae.getClass());
      jerr.println("\nPile d'execution : ");
      ae.printStackTrace();
     }
     finally  {
      jerr.println("\nDemo. de 'try...catch...finally' terminee !");
     }
     es.attente(); // pause pour lire ...
   }
 }