Exeptions

emma26

Mitglied
Hallo zusammen,

ich habe diesen Code bekommen:

Java:
  public class Aufgabe1 {
    
     public static void main ( final String [] args){
       System.out.println ( Aufgabe1.printMessage ());
     }
    
     private static String printMessage () {
       try {
       /*   System.out.print ("A");
         if ( true ) throw new Exc1 () ; // 1
         if ( true ) throw new Exc2 () ; // 2
        
         System.out.print ("B");
         if ( true ) throw new Exc1 () ; // 3
         if ( true ) throw new Exc2 () ; // 4
         if ( true ) throw new Exc3 () ; // 5
         */
         System.out.print ("C");
         } catch ( final Exc1 e) {
         System.out.print ("D");
         return "H";
         } catch ( final Exc2 e) {
         System.out.print ("E");
         } finally {
         System.out.print ("F");
         }
         System.out.print("G");
         return "J";
         }

}

throw ... soll auskommentiert werden - sonst darf im Code nichts geändert werden.
Der Code ist nicht ausführbar und ich soll ihn ausführbar machen!

reicht es eine neue Klasse zu erstellen und die Exceptions erben zu lassen??
 
Zuletzt bearbeitet von einem Moderator:

julia1997

Bekanntes Mitglied
  • Versuchen Sie dann jeweils nur ein Kommentar zu entfernen, damit eine einzige Ausnahme geworfen wird. Geben Sie fu ̈r diese 5 M ̈oglichkeiten die Ausgaben an. Erkl ̈aren Sie kurz die jeweiligen Ausgaben. Dabei mu ̈ssen Sie den Code anpassen, damit dieser u ̈berhaupt u ̈bersetzt werden kann. Es sollten aber alle catch-Klauseln erhalten bleiben!
 

dayaftereh

Top Contributor
Komisch, also falls du alle Exception if's ein kommentierst, sollte der Code ausführbar sein und folgende Buchstabe ausgeben.
Code:
DFH

Da in printMessage das erste If greift und dann die Exception Exc1 geworfen wird. Die Exception wird dann im ersten Catch gefangen und dort wird D ausgegeben. Also return wird dann ein H zurück gegeben, wobei dann erst der finally Block durchlaufen wird. Im finally Block wird dann das F ausgeben und dann erst der return Wert H...
 

emma26

Mitglied
hallo habe jetzt herum gebastelt und hab für die exc1 und 2 einen neue Klasse gemacht, die schlägt Eclipse auch vor und dann dann fumktioniert auch das ausklammern....

Bsp

public class Exc1 extends Exception {
String fehler;
public Exc1() {
fehler="Exc1 gworfen";
}
}

als antworten hab ich

a) The code is not excutable, because the catch functions are "user defined" functions. They have
to be coded in Exc1.java and Exc2.java. Eclipse automatically creates this function blocks.
If we would comment out the Exc* functions the method would print ABCFGJ on the console.

b) Line 11, 14-16 deactivated: code doesn't work because the EXc2 is never thrown from the try statement body
Line 14-16 deactivated: Output of ADFH
Line 15-16 deactivated: Output of ADFH
Line 16 deactivated: ADFH
No line deactivated: Error because Exc3 is not coded

It is always the same output because the other try/catch statements are not used.

c) System Exceptions and User Exceptions


LG
 
X

Xyz1

Gast
Also nur Runtimes müssen nicht deklariert werden.

Achso entsprechende Blöcke sind auch gegeben.

Sternchen rausnehmen, Dummy bedingungen einsetzen, einrücken, produktive Bedingungen finden.

Offtopic: Ist julia jetzt TO? Was soll das Verwirrungsspielchen?
 

emma26

Mitglied
Hab erst jetzt gecheckt dass ich falsch auskommentiert habe, somit war auch
System.out.print ("A"); System.out.print ("B"); weg man durfte wirklich nur die jeweiligen 5 throw auskommentieren.

Julia, es war nicht nötig den Code umzuschreiben nicht benötige zeilen auskommentieren reicht!! dann schlägt eclipse automatisch die neuen klassen in der Fehlermeldung vor......

public class Exc1 extends Exception {

Diese sinnvoll befüllen und fertig!! Wichtig ist auch das finally immer stärker ist wie return!!!
 

Neue Themen


Oben