public class Test
{
    private MyArrayList wortliste;

    public Test()
    {
        try
        {
            wortliste = new MyArrayList(5);
            fuegeObjekteEin();
        }
        catch (IllegalArgumentException ausnahme)
        {
            System.out.println("Fehler beim Erzeugen von wortliste: " + 
                ausnahme.getMessage());
        }
    }

    private void fuegeEinObjektEin(Object neu)
    {
        System.out.println("Einfügen des Objektes " + neu);

        try
        {
            wortliste.add(neu);
            System.out.printf("Neues Objekt %-20s", neu);
            System.out.printf("size = %3d, length = %3d %n%n",
                wortliste.size(),wortliste.capacity());
        }
        catch (IllegalArgumentException ausnahme)
        {
            System.out.println
            ("Fehler bei add(): " + ausnahme.getMessage() + "\n");
        }
    }
    
    private void fuegeEinObjektEin(int index, Object neu)
    {
        System.out.println("Einfügen des Objektes " + neu + " an Position " + index);

        try
        {
            wortliste.add(index,neu);
            System.out.printf("Neues Objekt %-20s", neu);
            System.out.printf("size = %3d, length = %3d %n%n",
                wortliste.size(),wortliste.capacity());
        }
        catch (NullPointerException ausnahme)
        {
            System.out.println
            ("Fehler bei add(index): " + ausnahme.getMessage() + "\n");
        }
        catch (IllegalArgumentException ausnahme)
        {
            System.out.println
            ("Fehler bei add(index): " + ausnahme.getMessage() + "\n");
        }  
        catch (IndexOutOfBoundsException ausnahme)
        {
            System.out.println
            ("Fehler bei add(index): " + ausnahme.getMessage() + "\n");
        }          
        
    }   
    
    private void fuegeEinObjektEin2(int index, Object neu)
    // Diese Methode fasst die drei catch-Bluecke zu einem zusammen
    {
        System.out.println("Einfügen des Objektes " + neu + " an Position " + index);

        try
        {
            wortliste.add(index,neu);
            System.out.printf("Neues Objekt %-20s", neu);
            System.out.printf("size = %3d, length = %3d %n%n",
                wortliste.size(),wortliste.capacity());
        }
        catch (Exception ausnahme) // Zusammenfassung
        {
            System.out.println
            ("Fehler bei add(index): " + ausnahme.getMessage() + "\n");
        }
    }      

    public void fuegeObjekteEin()
    {
        fuegeEinObjektEin(" 1. Name");
        fuegeEinObjektEin(" 2. Vorname");
        fuegeEinObjektEin(" 3. Straße");
        fuegeEinObjektEin(null);
        fuegeEinObjektEin(" 4. Hausnummer");
        fuegeEinObjektEin(" 5. Postleitzahl");
        fuegeEinObjektEin(23);
        fuegeEinObjektEin(true);
        fuegeEinObjektEin(" 6. Wohnort");
        fuegeEinObjektEin2(-2," 7. Landkreis");
        fuegeEinObjektEin2(0," 8. Bundesland");
        fuegeEinObjektEin2(2," 9. Land");
        fuegeEinObjektEin2(3,"10. Kontinent");
        fuegeEinObjektEin2(20,"11. Planet");
    }

    public static void main(String[] args)
    {
        Test test = new Test();
        System.out.println("Das Programm wird bis zum Ende ausgeführt!");

    }
}