Exceptions

javastudent25

Bekanntes Mitglied
a la:

public class Slipsize_too_small_Exception{

public void pruefen(int einstellungsdatum, int pruefdatum) throws IllegalArgumentException{

if ((einstellungsdatum < pruefdatum) && (einstellungsdatum < 1900 || pruefdatum < 1900)) {
System.out.println("Pruefdatum darf nicht kleiner sein als das Einstellungsdatum oder eines der beiden muss groesser 1900 sein");
throw new IllegalArgumentException("Datum zu klein.....");
} else {
System.out.println("well done");
}
}
}

[/code]
 
K

kneitzel

Gast
Darf ich Salz oder Pfeffer reichen? :)

Eine Exception müsste geworfen werden, wenn:
- Das Einstelldatum größer dem Prüfdatum
- ODER das Prüfdatum < 1900
- ODER das Einstelldatum < 1900

Der nächste Punkt ist bei relativ universellen Klassen wichtig: Ich würde kein System.out.println einbauen - es ist unklar, wo dies landet und ob dies überhaupt Beachtung findet. Statt dessen müsste die Meldung in die Exception selbst rein.

Ich würde sogar mehrere ifs / throws verwenden, da so drei unterschiedliche Meldungen kommen können.

Aber generell ist der Code in Ordnung und man muss halt nur darauf achten, dass die Checks genau so sind wie gewünscht und dass man generell das Verhalten hat, das angefordert wurde. Das Verständnis scheint da zu sein und das ist das Wichtige denke ich mal. Ein konkretes Problem lag ja nicht wirklich vor.

Konrad
 

javastudent25

Bekanntes Mitglied
alles klar, danke für die Hilfe Konrad, morgen muss ich doch was die Übungen betrifft eine UserDefinedException machen.
und danke für deine Hinweise mit dem System.prints etc.
Aber Konrad ich bin im Programmieren so eine Pfeife, da kann ich froh sein, wenn ich die kommenden Prüfungen alle erst Mal bestehe und vorerst mal einfach das Wesentliche weiss.
Ich hab mich mal die letzten paar Tage absichtlich um das gekümmert, wo ich eh ziemlich schlecht da stehe und ich bin noch lange nicht fertig. Ab morgen muss ich nämlich meinen täglichen Plan dann aufteilen, in Java, Ansys, Altium, Mechatronik, Fertigungstechnik etc.
Ich hätte aber nicht gedacht, dass Programmieren so viel Spass machen kann, wenn man mal dranbleibt und auf aufgebautem Wissen stets Neues bastelt... Im Studium ist es halt leider nicht so..
 
K

kneitzel

Gast
Da kann ich nur sagen, dass vieles durch Erfahrung und Übung kommt. Der Anfang ist immer recht schwer, alleine weil da sehr viel auf einmal auf einen zu kommt. Aber klar - wenn man dran bleibt, dann eröffnet sich ein durchaus interessantes Beschäftigungsfeld.
 

javastudent25

Bekanntes Mitglied
Hallo Freunde ;)
Ich bin wieder da und muss bei den Exceptions weiter anpacken. :)
Ich weiss, dass das Programm so nicht professionell ist und man noch weitere Abfragen machen könnte wegen des falschen Datums. Aber bevor ich mich an eine weitere Aufgabe wagen darf, muss ich zuvor noch eine UserDefinedException schreiben.
Im Moment zeigt das Programm, das ich gemacht habe Fehler an und ich weiss wieder einmal nicht woran das liegt..
Könnte mir vllt jemand weiter helfen?

Hier der Code

HIer das Bild

zev7unwb.jpg


Java:
public class TestDate {
    public static void main(String[] args) {   
        int day = -1;
        String month = "Apr";
        int year = 12;

        try{
            Date date = new Date(day,month,year);
            date.uberpruefeDatum();       
        }
        catch(InvalidDateException e){
            System.out.println("gefangen");
        }       
        }
    }

Java:
public class InvalidDateException extends Exception {
    public InvalidDateException () {  
   
    }
}

Java:
public class Date {
    int day;
    String month;
    int year;

public Date (int day, String month, int year){   
        this.day = day;
        this.month = month;
        this.year = year;
    }  

    public void uberpruefeDatum() throws InvalidDateException(){   
        List<String> months =  Arrays.asList("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");   
        if (day < 0 || day > 30 || year < 0 || !months.contains(month)){
            throw new InvalidDateException ("Datum Falsch");
        }   
    }
}
 
Zuletzt bearbeitet von einem Moderator:

InfectedBytes

Top Contributor
wenn du mit dem mauszeiger auf die fehler gehst, werden dir schon sehr hilfreiche tipps gegeben.
Ansonsten:
Java:
public void uberpruefeDatum()throws InvalidDateException(){ // falsch
public void uberpruefeDatum()throws InvalidDateException{ // richtig
Mit throws gibst du nur die Klasse der Exception an => keine runden klammern danach

Java:
throw new InvalidDateException ("Datum Falsch");
Deine InvalidDateException klasse hat keinen Konstruktor der einen String entgegen nimmt.
Also entweder das hier:
Java:
throw new InvalidDateException ();
oder das hier:
Java:
public class InvalidDateException extends Exception {
   public InvalidDateException (String error){
   super(error);
   }
}
 
Zuletzt bearbeitet von einem Moderator:

javastudent25

Bekanntes Mitglied
So bevor ich nun ein paar Fragen dazu stellen kann, muss das Programm erst mal laufen.
Die Fehler sind nun wo anders.
Übrigens du hast Recht mit den Hinweisen, aber leider ist es noch so, dass mir das meist nicht viel sagt aufgrund meiner Java Unerfahrenheit. Aber allmählich kommts.

Hier der Code

Hier das Bild

s6um8osu.jpg


Java:
public class Date {
    int day;
    String month;
    int year;

    public Date(int day, String month, int year) {
        this.day = day;
        this.month = month;
        this.year = year;
    }

    public void uberpruefeDatum() throws InvalidDateException {
        List<String> months = Arrays.asList("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov",
                "Dec");
        if (day < 0 || day > 30 || year < 0 || !months.contains(month)) {
            throw new InvalidDateException("Datum Falsch");
        }
    }
}

Java:
public class InvalidDateException extends Exception {
    public InvalidDateException(String error) {
        super(error);
    }
}

Java:
public class TestDate {
    public static void main(String[] args) {   
        int day = -1;
        String month = "Apr";
        int year = 12;
        try{
            Date date = new Date(day,month,year);
            date.uberpruefeDatum();       
        }
        catch(InvalidDateException e){
            System.out.println("gefangen");
        }       
        }
    }
 
Zuletzt bearbeitet von einem Moderator:

javastudent25

Bekanntes Mitglied
und was für Fehler kommen nun? bzw. wo sind? etc.

Das Bild hab ich oben hinzugefügt.
der Upload hat leider nicht so schnell funktioniert..

Fehler sind:

Multiple markers at this line
- Arrays cannot be
resolved
- List cannot be resolved
to a type

No exception of type InvalidDateException can be thrown; an exception type must be a subclass of Throwable

Multiple markers at this line
- No exception of type InvalidDateException can be thrown; an exception type must be a subclass of
Throwable
 

InfectedBytes

Top Contributor
Es wäre besser die Fehlermeldungen inklusive Zeilenangaben zu kopieren.

Ansonsten gehe ich mal stark davon aus, das imports fehlen.
Die List Klasse, liegt beispielsweise im packet java.util
Du importierst eine Klasse, indem du am anfang der Datei folgendes schreibst:
import java.util.List;
(Stichwort Grundlagen^^)
 

javastudent25

Bekanntes Mitglied
Jetzt hab ich mich zu früh gefreut, das wars nicht:

den Import hab ich schon drin
import java.util.List;

Fehler sind:

Zeile 17: Multiple markers at this line
- Arrays cannot be
resolved
- List cannot be resolved
to a type

Zeile 15: No exception of type InvalidDateException can be thrown; an exception type must be a subclass of Throwable

Zeile 21: Multiple markers at this line
- No exception of type InvalidDateException can be thrown; an exception type must be a subclass of
Throwable
- The constructor InvalidDateException(String) is undefined
s6um8osu.jpg


http://fs5.directupload.net/images/160117/s6um8osu.jpg
 

javastudent25

Bekanntes Mitglied
das Bildchen ist das Gleiche wie zuvor
Ich hab zwischendurch auch weiter probiert, bringe die Fehler aber nicht weg.
hier der Code

Java:
import java.util.List;

public class Date {

    int day;
    String month;
    int year;

    public Date(int day, String month, int year) {

        this.day = day;
        this.month = month;
        this.year = year;
    }

    public void uberpruefeDatum() throws InvalidDateException {

        List<String> months = Arrays.asList("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov",
                "Dec");

        if (day < 0 || day > 30 || year < 0 || !months.contains(month)) {
            throw new InvalidDateException("Datum Falsch");
        }
       

    }
}
 

javastudent25

Bekanntes Mitglied
ok, das tut immer noch nicht..
ich habe nun drin:
import java.util.List;
import java.util.Arrays;
import java.lang.Exception;

die ersten 2 brauche ich sicher, aber den 3. sicher nicht, denn bei den bisherigen Exceptions Beispielen hatte ich ja auch nie einen drin.. Wieso jetzt?
 

javastudent25

Bekanntes Mitglied
ok, ich habs einfach ausgeführt und die beiden Fehler waren weg..
hat also funktioniert.
Nun eine Frage dazu:

ich habe ja folgende Abfrage in der if

Java:
if (day < 0 || day > 30 || year < 0 || !months.contains(month)) {

beim letzten prüfe ich ja:
wenn die ArrayList die Variable month nicht enthält --> dann sollte die Exception geworfen werden..
sprich der Ausdruck oben ergibt ja ein true mit dem Ausdruck !false
aber wo ist nun festgelegt, dass in der Abfrage immer bei true die Anweisung danach ausgeführt werden muss??
das verstehe ich nicht so ganz..

Genauso gut, müsste es ja auch eine Exception werfen, wenn der Monat enthalten ist..
Tut es aber nicht, deshalb die Frage.
 

InfectedBytes

Top Contributor
aber wo ist nun festgelegt, dass in der Abfrage immer bei true die Anweisung danach ausgeführt werden muss??
so funktionieren if-Abfragen nunmal, wenn die Bedingung true ist, wird die nächste Anweisung ausgeführt, sonst nicht.
Genauso gut, müsste es ja auch eine Exception werfen, wenn der Monat enthalten ist..
Eben nicht, wenn der Monat enthalten ist, liefert month.contains true, aber das ganze negierst du ja.
Dementsprechend liefert !month.contains(...) eben false.
 
K

kneitzel

Gast
In der If Abfrage hast du mehrere Bedingungen mit || (logisches Oder) verknüpft. Und a || b ist wahr, wenn eines der beiden wahr ist. Somit ist der Ausdruck in deiner if Anweisung wahr, sobald eines der Teile wahr wird.

War das evtl. der fehlende Teil bei Deinem Verständnis?
 

javastudent25

Bekanntes Mitglied
In der If Abfrage hast du mehrere Bedingungen mit || (logisches Oder) verknüpft. Und a || b ist wahr, wenn eines der beiden wahr ist. Somit ist der Ausdruck in deiner if Anweisung wahr, sobald eines der Teile wahr wird.

War das evtl. der fehlende Teil bei Deinem Verständnis?

Hallo Konrad

Ja das hat geholfen, danke.
Aber auch InfectedBytes Beitrag war hilfreich.
Ich habe die letzte Bedingung komischerweise selbst geschrieben, hatte aber irgendwie einen Hänger, warum das eigentlich tut.. hmm, ich hoff es geht nicht nur mir so.. ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Exceptions mit try-catch-Surrounding - Probleme Java Basics - Anfänger-Themen 6
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
C Exceptions identifizieren Java Basics - Anfänger-Themen 5
A Exceptions mit objektreferenzen Java Basics - Anfänger-Themen 4
A Exceptions und methods Java Basics - Anfänger-Themen 2
A Cannot find symbol bei exceptions Java Basics - Anfänger-Themen 2
A Exceptions und Packages Java Basics - Anfänger-Themen 6
B JUnit / Exceptions/ try-catch Java Basics - Anfänger-Themen 6
X Exceptions Benutzereingaben Java Basics - Anfänger-Themen 4
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
L Exceptions und Konten Java Basics - Anfänger-Themen 21
D Frage zu Exceptions Java Basics - Anfänger-Themen 8
G Wie programmiert man Exceptions? Java Basics - Anfänger-Themen 4
N Unterschied zwischen Checked und Unchecked Exceptions Java Basics - Anfänger-Themen 12
C Erste Schritte Exceptions nicht verstanden Java Basics - Anfänger-Themen 2
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
T Exceptions - ausgeführte Zeilen Java Basics - Anfänger-Themen 4
C Exceptions Java Basics - Anfänger-Themen 8
C Exceptions Java Basics - Anfänger-Themen 6
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
F Exceptions Java Basics - Anfänger-Themen 6
J Frage zum Thema Exceptions (Try/Catch) Java Basics - Anfänger-Themen 3
M "Exceptions abfragen" Java Basics - Anfänger-Themen 6
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
Z Catch & Exceptions Java Basics - Anfänger-Themen 4
N Compiler-Fehler Drei Exceptions in GUIHack für Dreiecke auf MoveButtons Java Basics - Anfänger-Themen 36
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
S Exceptions Java Basics - Anfänger-Themen 7
M Vererbung Problem Vererbung/Exceptions Java Basics - Anfänger-Themen 9
S Verschachtelte Exceptions - Übersicht verbessern Java Basics - Anfänger-Themen 2
J Eclipse Exceptions Java Basics - Anfänger-Themen 2
K Schleifen und Exceptions Java Basics - Anfänger-Themen 8
K Exceptions auslagern Java Basics - Anfänger-Themen 15
R NullPointer Exceptions Java Basics - Anfänger-Themen 3
F Erste Schritte Übung zu Exceptions Java Basics - Anfänger-Themen 24
R Exceptions (try/catch) Java Basics - Anfänger-Themen 63
H Int Exceptions Java Basics - Anfänger-Themen 12
M Exceptions per throws oder try Java Basics - Anfänger-Themen 4
M Compiler-Fehler Queue als ArrayList mit Exceptions Java Basics - Anfänger-Themen 3
T Exceptions in einer Klasse Java Basics - Anfänger-Themen 3
B Eigene Exceptions entwerfen Java Basics - Anfänger-Themen 3
H Methoden Überflüssige Exceptions Java Basics - Anfänger-Themen 20
C Exceptions Java Basics - Anfänger-Themen 14
1 While Schleife Exceptions Java Basics - Anfänger-Themen 6
I Erste Schritte Eigene Fehlermeldungen bei Exceptions Java Basics - Anfänger-Themen 19
D Frage zu Exceptions Java Basics - Anfänger-Themen 12
M Compiler-Fehler Exceptions lieber throwen oder direkt catchen? Java Basics - Anfänger-Themen 8
T Exceptions Java Basics - Anfänger-Themen 19
B Wie finde ich Exceptions? Java Basics - Anfänger-Themen 19
Dit_ Input/Output Alle Exceptions protokollieren Java Basics - Anfänger-Themen 9
T Exceptions Java Basics - Anfänger-Themen 12
J Standard Exceptions abfangen Java Basics - Anfänger-Themen 5
F Exceptions werfen oder catchen?? Java Basics - Anfänger-Themen 14
D Exceptions - Ausnahmebehandlung Java Basics - Anfänger-Themen 19
D Frage zu Exceptions und der import Anweisung Java Basics - Anfänger-Themen 12
J Paar Fragen zu Exceptions Java Basics - Anfänger-Themen 16
G Verständnisproblem: Exceptions Java Basics - Anfänger-Themen 17
S Exceptions bei push/pop in Stack Java Basics - Anfänger-Themen 8
C Exceptions beim Beenden Java Basics - Anfänger-Themen 2
C TimerTask und Exceptions Java Basics - Anfänger-Themen 5
E Klasse öffnen, mehrere Exceptions Java Basics - Anfänger-Themen 9
C Exceptions Java Basics - Anfänger-Themen 7
G 2 Exceptions in einer Methode Java Basics - Anfänger-Themen 3
firefexx Exceptions werfen Java Basics - Anfänger-Themen 5
0 Exceptions mehrfach fangbar? Java Basics - Anfänger-Themen 4
O Exceptions Java Basics - Anfänger-Themen 3
K Sinn eigener Exceptions Java Basics - Anfänger-Themen 11
H Diverse Exceptions - Troubleshooting Java Basics - Anfänger-Themen 3
J exceptions Java Basics - Anfänger-Themen 8
sc0p InterruptedExceptions und Exceptions - in Einem! Java Basics - Anfänger-Themen 5
M Frage zu Exceptions Java Basics - Anfänger-Themen 19
M Fragen zu Exceptions Java Basics - Anfänger-Themen 3
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
D Exceptions werfen + beenden Java Basics - Anfänger-Themen 12
M Exceptions aus interface-Methoden Java Basics - Anfänger-Themen 2
S File.renameTo und Exceptions / Fehlermeldung Java Basics - Anfänger-Themen 2
B Exceptions in Liste sammeln? Java Basics - Anfänger-Themen 5
O Eigene Exceptions Java Basics - Anfänger-Themen 11
O "restliche" Exceptions fangen Java Basics - Anfänger-Themen 8
H [Stil] Exceptions in der Klasse behandeln oder throwen? Java Basics - Anfänger-Themen 62
T Problem beim Werfen und Fangen von Exceptions Java Basics - Anfänger-Themen 2
V Aktivitätsdiagramm / Exceptions Java Basics - Anfänger-Themen 5
V Exceptions Java Basics - Anfänger-Themen 6
K Frage zu Exceptions -> Logging Java Basics - Anfänger-Themen 6
M Eigene Fehlermeldung bei Exceptions? Java Basics - Anfänger-Themen 12
R JDom Exceptions Java Basics - Anfänger-Themen 4
R Datei einlesen mit Exceptions Java Basics - Anfänger-Themen 2
Daniel_L Verwendung von try und catch bei exceptions Java Basics - Anfänger-Themen 7
C Reflection Exceptions behandeln Java Basics - Anfänger-Themen 6
G Exceptions - spiegeln wir da nicht einen Spiegel im Spiegel? Java Basics - Anfänger-Themen 10
G Verschiedene Exceptions zu gleichem Block Java Basics - Anfänger-Themen 6
U Frage zu Exceptions Java Basics - Anfänger-Themen 5
mwildam Philosophiefrage zu Exceptions und Rückgabewerten Java Basics - Anfänger-Themen 6
D Static, final Objekte mit Exceptions im Konstruktor Java Basics - Anfänger-Themen 2
G Exceptions Java Basics - Anfänger-Themen 4
G ServerSocket: Exceptions und Timeout Probleme Java Basics - Anfänger-Themen 10
M Exceptions bei Textfeldern abfangen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben