Exception in Main abfangen oder in der Methode?

werdas34

Bekanntes Mitglied
Hallo,

ich soll als Aufgabe zwei Exceptionklassen schreiben, die wenn in einer Liste ein Element hinzugefügt wird, dass breits in der Liste vorhanden ist, geworfen wird.
Quasi.
liste.add(element)
liste.add(element) // wirft Exception.

Nun steht in der Aufgabe, man solle in der Main die try catch Blöcke machen. Habe in der main ca. 20 add-Aufrufe, also 20 try catch Blöcke? Oder gehts simpler?
Ich weiß, ich kann die 20 add-Aurfue in einen try Block packen, aber dann erhalte ich auch nur einen catch. Es steht in der Aufgabe nicht konkret dar, was danach passieren soll nach der Exception. (Programm läuft weiter bis zum Ende, wirft evtl weitere Exception die gefangen werden müssen/Programm endet beim ersten fang der Exception).
Der erste Fall würde ja die 20 try Blöcke erfordern der zweite nur einen.

Meine Idee war die try catch in die add-Methode zu packen? Denn dann ändert sich an der Main nichts aber die Exception sind eingebaut. Würde zwar dann die Exception in der add-Methode werfen und fangen, was ja auch nicht so schön ist.

Sollte es noch spezifischer werden, werde ich den Code auch hochladen.
 

mihe7

Top Contributor
Java:
Object[] elems = new Object[]{elem1, elem2, ..., elem20};
for (Object e : elems) {
    try {
        liste.addElement(e);
    } catch (DuplicateElementException ex) {
        System.err.println("Element " + ex.which() + " existiert bereits");
    }
}

:)
 

werdas34

Bekanntes Mitglied
Ja, mit einer for Schleife kann man das machen.
Aber ich habe in der main sowas stehen.
liste.add(i.was)
liste.add(i.was)
liste.add(i.was)
liste.add(i.was)
liste.add(i.was)
liste.add(i.was)
liste.add(i.was)
liste.add(i.was)
liste.add(i.was)
liste.add(i.was)
liste.add(i.was)
Da kann ich keine Schleife drüberlaufen lassen ?
 

werdas34

Bekanntes Mitglied
Ich darf bisschen was ändern bzw. eig nur die try catch hinzufügen. Hätte ich die main selber geschrieben, hätte ich es sowieso mit Array oder so gelöst.
 

werdas34

Bekanntes Mitglied
Das wäre das einfachste. Aber ich soll in der Exception auch den Namen des doppelten Artikel zurückgeben. Habe in der Exceptionklasse eine Variable die diesen Wert dann erhalten soll.

Mal ne andere Frage am Rande:
Java:
liste.add(new Test(1,2,3));
Ich habe dieses Objekt. Ich möchte jetzt auf einen Wert zugreifen und in die Exceptionklasse schreiben.
Ohne jetzt das zu machen:
Code:
Test test = new Test(1,2,1);
ExceptionClass e = new Exceptionclass();
e.setWert() = test.getWert();
liste.add(test);
Wie komme ich da an den Wert ran?
Ich weiß ich könnte die main umschreiben, aber möchte die möglichst so belassen wie sie ist. (ist vorgegeben)
 

Tarrew

Top Contributor
Wenn du die Exception in der add-Methode wirfst, setzt du vorher den Wert.

Beispiel:
Java:
public class Test {
    public static void main(String[] args) {
        CustomList<String> list = new CustomList<>();

        try {
            list.add("Wort1");
            list.add("Wort2");
            list.add("Wort3");

            list.add("Wort2");
        }catch (CustomException e){
            System.out.println("Element "+e.wert+" ist bereits vorhanden");
        }
    }

}
class CustomList<E> extends ArrayList<E>{

    public boolean add(E e) throws CustomException{
        if(this.contains(e))throw new CustomException(e);

        return super.add(e);
    }
}

class CustomException extends RuntimeException {
    Object wert;

    public CustomException(Object wert) {
        this.wert = wert;
    }
}
 

werdas34

Bekanntes Mitglied
teil der main:
Java:
        MusicDataStore music = new MusicDataStore();
        Composer mozart = new Composer("Mozart, Wolfgang Amadeus", 1756, 1791);
        Composer hiasl = new Composer("Hintermoser, Hiasl", 1926);

        try {
        music.addComposer(mozart);
        music.addComposer(hiasl);
        music.addComposer(mozart);
        } catch (ComposerAlreadyContainedException e) {
            System.out.println("Duplikat " + e.getComposer());
        }

Exceptionklasse:
Java:
public class ComposerAlreadyContainedException extends Exception{

    private String composer;
     
    ComposerAlreadyContainedException(){
    }
 
    ComposerAlreadyContainedException(String s, String composer){
        super(s);
        this.composer = composer;
    }
 
    String getComposer() {
        return composer;
    }
}
Wie schaffe ich das der String"Mozart, Wolfgang Amadeus" mit ausgegeben wird. Momentan steht nur null da. Ich muss also getComposer() den Namen noch geben. Aber wie ?
 

werdas34

Bekanntes Mitglied
Jetzt wo ich den Code grad kopiere, seh ich wo ich das einfügen muss. Habe ja dort dann quasi den Konstrukotr der Exceptionklasse und dort gebe ich die Werte mit.

Danke. :D

Edit:
Code:
try{
music.add(mozart);
music.add(mozart);
music.add(hiasl);
music.add(hiasl);
} catch ...

Wenn ich diese Konstellation habe wird nur der Mozart als Duplikat ausgegeben.
Aber ich möchte das beide ausgegeben werden.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
J Exception in thread "main" Java Basics - Anfänger-Themen 1
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
P Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 1
K Exception in thread "main" Java Basics - Anfänger-Themen 7
M Exception von main Methode weiterwerfen? Java Basics - Anfänger-Themen 1
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
F Exception in thread main java.lang.StackOverflowError Java Basics - Anfänger-Themen 3
A Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 7
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
M Exception in thread "main" java.lang.NoClassDefFoundError: MeineKlasse Java Basics - Anfänger-Themen 12
thorr Exception NoSuchMethod main Java Basics - Anfänger-Themen 18
S Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 11
K main-Exception in Array class Java Basics - Anfänger-Themen 5
S Umgebungsvariable Exception in thread "main" java.lang.UnsatisfiedLinkError: no J3D in java.librar y.path Java Basics - Anfänger-Themen 15
M Klassen Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 2
D Exception in thread "main" Java Basics - Anfänger-Themen 8
A Exception in thread "main" Java Basics - Anfänger-Themen 7
S Exception-Handling in main-Funktion? Java Basics - Anfänger-Themen 6
S Exception in thread "main" Java Basics - Anfänger-Themen 3
B Exception in thread "main" java.lang.NullPointerException Fehler Hilfe! Java Basics - Anfänger-Themen 4
L Bubblesort: Exception in Thread "main" Java Basics - Anfänger-Themen 5
A Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 16
A GELÖST -- Exception in thread "main" Java Basics - Anfänger-Themen 3
B Fehlermeldung - Exception in thread "main" java.lang.Error: Unresolved compilation pr Java Basics - Anfänger-Themen 16
E Fehler: "Exception in thread "main" java.lang.NoSuchMethodError" Java Basics - Anfänger-Themen 15
G Fehler: Exception in thread main java.lang.noClassDefFound Java Basics - Anfänger-Themen 7
L Exception in thread "main" java.util.NoSuchElement Java Basics - Anfänger-Themen 4
A Do/While Problem (Exception in thread "main" java. Java Basics - Anfänger-Themen 4
M "exception in thread "main" java.lang.NullPoi Java Basics - Anfänger-Themen 2
S Exception in thread "main" java.lang.UnsupportedCl Java Basics - Anfänger-Themen 4
P Exception in thread "main" Java Basics - Anfänger-Themen 4
V Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 21
B Wohin mit der Main-Methode? HILFE! ("Exception in thr.) Java Basics - Anfänger-Themen 19
S Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 3
NightmareVirus Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 8
A "Exception in thread "main" java.lang.NoCLass Java Basics - Anfänger-Themen 10
N exception in thread main . Java Basics - Anfänger-Themen 3
C Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 9
vogella Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 6
C exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 7
A Fehlermeldung: Exception in thread "main" java.lan Java Basics - Anfänger-Themen 3
H Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 3
R Exception in Thread "main" . Kommandozeile/Netbean Java Basics - Anfänger-Themen 8
L Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerEx Java Basics - Anfänger-Themen 10
B Exception in thread "main"... Java Basics - Anfänger-Themen 3
L Exception in thread "main" java.lang.NoSuchMethodE Java Basics - Anfänger-Themen 3
K Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 8
J Exception in thread "main" java.langClassNoFoundEr Java Basics - Anfänger-Themen 2
H Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 5
B Fehler: Exception in Thread "main" java.lang.NoCla Java Basics - Anfänger-Themen 2
G Exception in thread "main" java.lang.NoClassDefFou Java Basics - Anfänger-Themen 2
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
J Exception unreachable Java Basics - Anfänger-Themen 12
O unchecked Exception Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben