tutorials.de Buch-Aktion 02/2012
Seite 4 von 4 ErsteErste 1234
ERLEDIGT
NEIN
ANTWORTEN
57
ZUGRIFFE
1806
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #46
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    public class TestExceptions {
    static String arr[] = {"Alpha", "Beta", "Gamma", "Zeta"};
    public static void zeigeEintrag(int index) {
    System.out.println("Eintrag " + index + " lautet: " +
    arr[index]);
    }
    public static void main(String args[]) {
    int index = Integer.parseInt(args[0]);
    zeigeEintrag(index);
    }
    }


    irgendwie so müsste das funktionieren, oder
    Code :
    1
    2
    3
    4
    5
    6
    7
    
      try {
                zeigeEintrag();
            } catch(NichtMoeglichException) {
                System.out.println("Betrag kann nicht abgehoben werden");
            }
        }
    }
     

  2. #47
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Hi!

    Hm ... also nochmal zurück zur Aufgabenstellung:

    Mußt du eine eigene, d.h. selbstimplementierte Exceptionbehandlung implementieren, oder auf der gegebenen sehr guten von Java aufbauen? Wenn du auf die von Java aufbauen kannst, brauchst du dir keine eigene Klasse implementieren, wenn ja, dann muss diese Klasse von ... moment, ich bin mir jetzt auch nicht sicher, aber ich glaube Exception abgeleitet sein.

    Code :
    1
    2
    3
    
    public class MyTerribleExamException extends [COLOR=Red]Exception [/COLOR]{
     ...
    }

    Aber zunächst mal eine kleine Einführung in Exception, oder Fehlerbehandlung (soweit ich das verstanden habe zumindest )

    Exceptions sind nichts anderes als definierte Fehler, die bei gewissen Bedingungen auftauchen und "geworfen" werden. Dies erleichtert einerseits das Kontrollieren von Code, da du zur Laufzeit, also wenn der Code ausgeführt wird, einen definierten Fehler vorfindest, wenn ein solcher Fehlerfall auftritt, und zweitens hat man so auch die Möglichkeit das eigene Fehler oder Fehlerbedingungen zu definieren. Die Syntax sieht wie folgt aus:

    Methode die eine Exception werfen soll:
    Code :
    1
    2
    3
    4
    5
    
    public void myTestExceptionMethod( ... ) throws MyTerribleExamException {
     // do your stuff ...
     // if wrong then ...
     throw new MyTerribleExamException ("Fehlerbeschreibung");
    }

    Du siehst, es gibt also Methoden die Exceptions "werfen" (throw). Nun, wenn diese Methode verwendet wird, kann es eben passieren, dass ein Fehler auftritt, und eine Exception geworfen wird. Was, wenn das jetzt passiert? Ganz einfach, das Zauberwort, oder die Wörter sind "try-catch". Mit HIlfe von sogenannten try-catch Blöcken kannst du Exceptions jeglicher Art abfangen und auch behandeln (es gibt dann noch soetwas wie final, aber das wollen wir hier mal aussparen). Im try Block wird, wie der Name schon sagt, "versucht" etwas bestimmtes zu machen, z.b. auf einen Index eines Arrays zuzugreifen. Hierbei wird eine sensible Methode oder ein Vorgang ausgeführt.

    Code :
    1
    2
    3
    4
    5
    
    // wir befinden uns in einer beliebigen methode, z.b. main ....
    try {
     // aufruf des sensiblen codes, der eine Exception werfen kann ...
     myTestExceptionMethod(...);
    }

    Hierbei können nun Exceptions auftreten. Der try Block registriert nun diesen Exceptionwurf, und leitet ihn an den catch Block (ums vorsichtig auszudrücken) weiter. Im catch Block wird diese Exception abgefangen und alles was dann IM catch Block an definierten Vorgehensweisen festgelegt worden ist, wird ausgeführt. Dies könnte, wie im Beispiel hier, eine Ausgabe auf die Console sein.

    Code :
    1
    2
    3
    4
    
    catch (MyTerribleExamException e) {
     // reagiere auf die abgefangene Exception ...
     System.out.println("Jo! Eine Exception ist aufgetreten!");
    }

    Wenn man nicht genau weiß, welche Exception aufgetreten ist, dann kann man auch statt "MyTerribleExamException" einfach nur "Exception" schreiben (das ist möglich, da ja ein Objekt geworfen wird, und alle Exceptionklassen von Exception abgeleitet worden sind).

    Hm ... jo, ich hoffe es war einigermassen verständlich für dich. Wenn nicht, einfach posten

    Gutes Schaffen wünsch ich!

    Gruß
    TOM
     
    alles Gute kommt von ...

  3. #48
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    @morphi79:
    Ich denk das probieren wir nochmal, denn mit sowas kann niemand arbeiten.
    Gib doch mal an was Du genau nicht verstanden hast.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  4. #49
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    wenn ich diesen code habe

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
     
    [left]public class TestExceptions {
    static String arr[] = {"Alpha", "Beta", "Gamma", "Zeta"};
    public static void zeigeEintrag(int index) {
    System.out.println("Eintrag " + index + " lautet: " +
    arr[index]);
    }
    public static void main(String args[]) {
    int index = Integer.parseInt(args[0]);
    zeigeEintrag(index);
    }
    }[/left]

    und möchte das machen:
    [left]Modifizieren Sie die Klasse so, dass die Methode zeigeEintrag() keine Exception wirft, wenn der übergebene Index außerhalb der Array-Grenzen liegt. Stattdessen soll in einem solchen Fall die Meldung ausgegeben werden, dass es keinen Eintrag mit diesem Index gibt. Verwenden Sie dazu Anweisungen zur Ausnahmebehandlung, nicht die Eigenschaft length des Arrays.[/left]
    [left] [/left]
    [left]Muss ich dann zuerst eine Klasse mit extends bauen? [/left]
     

  5. #50
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Ich hab zwar nicht viel Ahnung von Java, aber fuer sowas ist doch try...catch zustaendig.

    Also ein Konstrukt dieser Art (oder aehnlich):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    try
    {
     //
    }
    catch (Exception exc)
    {
     //
    }
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  6. #51
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    in einer eigenen klasse oder?
     

  7. #52
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Moin,
    für mich sieht das eher danach aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    public static void zeigeEintrag(int index)
    {
      if ( index < 0 || index >= arr.length )
      {
        System.out.println("Fehlerhafter Index uebergeben");
      }
      else
      {
        System.out.println("Eintrag " + index + " lautet: " + arr[index]);
      }
    }
     

  8. #53
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    jetzt bin ich noch mehr verwirrt....
     

  9. #54
    NomadSoul NomadSoul ist offline Mitglied Platin
    Registriert seit
    Nov 2002
    Ort
    Mannheim
    Beiträge
    544
    Blog-Einträge
    5
    Zitat Zitat von Snape
    Moin,
    für mich sieht das eher danach aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    public static void zeigeEintrag(int index)
    {
      if ( index < 0 || index >= arr.length )
      {
        System.out.println("Fehlerhafter Index uebergeben");
      }
      else
      {
        System.out.println("Eintrag " + index + " lautet: " + arr[index]);
      }
    }
    Verwenden Sie dazu Anweisungen zur Ausnahmebehandlung, nicht die Eigenschaft length des Arrays

    genau so soll er es nicht machen.
    Er soll die ArrayOutOfBounce Exception fangen.
     
    Zitat Zitat von Benjamin Franklin
    Eine Gesellschaft die Freiheit zugunsten der Sicherheit opfert hat beides nicht verdient
    Kohlkopf
    -------------------------------------------------------------------------------------------
    .:Mitglied und offizieller Erdbeerenpflanzer des 1. offiziellen Sven Uwe Fan-Clubs:.

  10. #55
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    das mit try catch ist also das was ich brauche. muss ich dafür ne extra klasse machen? schon oder?
     

  11. #56
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Nein, eher
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    public static void zeigeEintrag(int index)
    {
      try
      {
        System.out.println("Eintrag " + index + " lautet: " + arr[index]);
      }
      catch(Exception e)
      {
        System.out.println("Fehlerhafter Index uebergeben");
      }
    }
     

  12. #57
    Avatar von morphi79
    morphi79 morphi79 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    155
    mhh. und die einfach hinzufügen?


    oh ist das kompliziert. ich wünsche keinem den lehrer, den ich in java hatte und alles aus büchern lernen ist sehr schwierig. danke für eure hilfe schon einmal.

    aber nochmal zurück. füge ich die einfach ein?
     

  13. #58
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Exception ist eine Klasse im Java Framework. Da brauchst du keine neue Klasse erstellen. Ich hatte das aus deiner Angabe so verstanden, dass du eine eigene Klasse machen sollst dafür, das ist nämlich möglich, also von Exception abzuleiten. Wenn du nur einfaches Exceptionhandling verwenden möchtest reicht die Ausführung von Snape vollkommen.

    Gruß
    TOM
     
    alles Gute kommt von ...

Ähnliche Themen

  1. Microsoft Exchange 2007 Step by Step
    Von denisSCR im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 24.02.10, 11:25
  2. "making of" eines 3d characters - step by step
    Von pixel-panik im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 07.02.08, 11:15
  3. Step-by-Step Tutorial: Achieve Rapid Application Development with Seam+Eclipse+Tomcat
    Von Techieexchange im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 13.11.07, 22:43
  4. Antworten: 0
    Letzter Beitrag: 13.12.05, 21:09
  5. Suche Step-by-step Tut
    Von Oxygen im Forum 3D Studio Max
    Antworten: 1
    Letzter Beitrag: 22.07.01, 13:13