Programm neu starten nach Fehlerabfang

Samoht7891

Neues Mitglied
Hallo Leute.

Ich bin totaler Java Neuling und muss fürs Studium ein Programm in Eclipse schreiben, das aus einer Adress- und Datensammlung Daten auswertet. Ich komme gerade an einem Punkt nicht weiter.
Ich habe einen try, catch Block für die Fehlerabfrage eingebaut. Wird ein unerlaubte Eingabe erkannt, so gibt er mir eine Fehlermedung heraus und beendet das Programm mit System.exit.
Ich möchte aber gerne, dass er dem Benutzer dann die Mögichkeit gibt, seine Eingabe wieder neu zu beginnen. Habe gelesen, dass man das mit einer while-Schleife machen kann. Ich habe keine Ahnung wo ich die hin setzten muss und was sie beinhalten muss. Kann mir da jemand weiterhelfen? Hier mein Codeausschnitt:

Java:
public static int durchschnittsAlter() {

		try {
			
			int eingabe = IO.readInt("Bitte ein Geburtsjahr eingeben:");

			DateiInput leser = new DateiInput("Werte zur Übung 6.3.csv");

			
			String zeile = null;


			ArrayList<Integer> durchschnittsalter = new ArrayList<Integer>();

			
			while ((zeile = leser.leseZeile()) != null)

			{

				String[] adressFeld = zeile.split(";");

				
				int geburtsJahr = Integer.parseInt(adressFeld[4]);

				int alter = eingabe - geburtsJahr;

				
				
				if (alter <= 0) 
					
				
			
				else {
					
					durchschnittsalter.add(alter);
				}
			}

			int durchschnitt = 0;

			for (int a = 0; a < durchschnittsalter.size(); a++)
				
				durchschnitt = durchschnitt + durchschnittsalter.get(a);
			int mittelwert = durchschnitt / durchschnittsalter.size();
			IO.println("Das Durchschnittsalter aller Personen bezogen auf Ihre Eingabe "
					+ eingabe + " beträgt: " + mittelwert + " Jahre");

		}
		
		catch (IOException e) {

			// Ausgabe einer Fehlermeldung und Ende bei Dateifehler
			IO.println("Fehler beim lesen der Datei! "
					+ e.getLocalizedMessage());
			System.exit(1);

		}

		catch (NumberFormatException ex) {

			// Ausgabe einer Fehlermeldung und Ende bei Dateifehler
			IO.println("Fehler beim lesen der Datei!"
					+ ex.getLocalizedMessage());
			System.exit(1);

		}

		catch (InputMismatchException exy) {

			// Ausgabe einer Fehlermeldung und Ende bei Dateifehler
			IO.println("Nur ganze Zahlen eingeben");
			System.exit(1);

		}

		catch (ArithmeticException exyz) {

			// Ausgabe einer Fehlermeldung und Ende bei Dateifehler
			IO.println("Alle Personen sind juenger als Ihr eingegebenes Geburtsjahr  ");
			System.exit(1);

		}

		return 0;

	}

	public static void main(String[] args) {

		int ergebins = (int) durchschnittsAlter();
		IO.println(ergebins);

	}

Ich habe die Berechnung des Durchschnittsalters in eine neue Methode gesteckt. Allerdings muss unten immer ein return-Wert eingetragen werden. Führe ich das Programm in Eclipse jetzt aus, so steht unter dem was ausgegeben werden soll noch die 0 vom return-Wert. Das soll aber nicht da stehen.
Kann mir jemand helfen?
 

TheSorm

Bekanntes Mitglied
an sich must du nur zb einen button amchen der das Fenster auf .setvisible(false) setzt und danach die main neu aufruft

Java:
setVisible(false);
deineclasse.main(//...);
 
Zuletzt bearbeitet:

Samoht7891

Neues Mitglied
Danke für die schnelle Antwort. Aber damit kann ich leider nicht wirklich was anfangen. Ich bin totaler Neuling.
Wo muss ich das denn hin schreiben? Ich sollte sicherlich auch nicht Befehle verwenden die wir in der Vorlesung noch nicht hatten. Denke das ich das mit ner while-Schleife oder so lösen sollte.
 

fischefr

Aktives Mitglied
Hallo!

Also die Antwort von TheSorm kannst du mal getrost ignorieren. Er geht bei seiner Antwort davon aus, dass der Benutzer Werte über eine graphische Oberfläche eingibt. Davon hab ich in deinem Beitrag kein Wort gelesen.

Ich kann dir im Augenblick nur soweit helfen:
System.exit darf für dein Vorhaben nicht aufgerufen werden - das beendet die komplette virtual maschine.

Es gibt viele mehr oder weniger elegante Möglichkeiten. Du kannst z.B System.exit(1) durch return -1 ersetzen und in der main-Methode diesen Wert auswerten:

Code:
public static void main(String[] args) {
 
        int ergebnis = -1;
        while(ergebnis < 0) {
           ergebnis = durchschnittsAlter();
        }
        IO.println(ergebnis);
 
    }

Alternativ könnte man System.exit entfernen, stattdessen die exception erneut werfen und in der main-Methode mit try-catch-Block erneut behandeln. Oder gleich das try-catch in main verlagern. Viele Wege führen nach Rom
 

Sen-Mithrarin

Gesperrter Benutzer
ihr kennt ja mitlerweile meine dunkle aggressive art, aber ich muss hier wirklich mal ganz ernsthaft nachfragen

info-student und nicht in der lage selbst zu googlen ? oder sich mal n (e-)book reinzuziehen so in richtung : java basics ... ähm ... sorry ... but : :lol:

da könnte man echt nur zynisch drauf antworten : schlechte bewertung mehr als verdient :toll:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Dimax Java Programm mit exec starten Java Basics - Anfänger-Themen 5
L Programm lässt sich nicht starten! Java Basics - Anfänger-Themen 1
x-tshainge Mein Programm lässt sich nicht Starten Java Basics - Anfänger-Themen 8
B Mit Java anderes Java Programm starten Java Basics - Anfänger-Themen 3
G Wie kann ich mein Quellcode als Programm vom desktop starten? Java Basics - Anfänger-Themen 1
J Classpath Programm aus Programm heraus starten Java Basics - Anfänger-Themen 1
K Methoden Programm ohne Main Methode starten Java Basics - Anfänger-Themen 2
R externes Programm starten Java Basics - Anfänger-Themen 12
P Programm lässt sich nicht starten - Klasse mit Hauptmethode nicht gefunden Java Basics - Anfänger-Themen 9
M Programm mit jdb starten Java Basics - Anfänger-Themen 0
S Methoden Methode um Programm zu starten Java Basics - Anfänger-Themen 4
S Externes Java Programm starten Java Basics - Anfänger-Themen 9
S Erste Schritte Programm starten Java Basics - Anfänger-Themen 13
M Kann Java Programm nicht starten Java Basics - Anfänger-Themen 7
U Java-Programm auf einem Server starten Java Basics - Anfänger-Themen 33
M Kann mein Java Programm nicht starten Java Basics - Anfänger-Themen 6
G Kleine Java Programme aus Main Java Programm starten..... Java Basics - Anfänger-Themen 3
Crashbreaker Eigene Java-Programm ohne hilfe des CMD starten Java Basics - Anfänger-Themen 11
J Java-Programm starten Java Basics - Anfänger-Themen 6
T Das erste Programm starten Java Basics - Anfänger-Themen 27
StrikeTom Programm starten Java Basics - Anfänger-Themen 3
G Programm über Website starten Java Basics - Anfänger-Themen 20
J Batch Datei Problem, Programm nur einmal starten Java Basics - Anfänger-Themen 9
L Programm lässt sich nicht starten Java Basics - Anfänger-Themen 9
U programm starten Java Basics - Anfänger-Themen 4
F Programm starten Java Basics - Anfänger-Themen 2
N Beim Einstecken eines Wechseldatenträgers Programm starten Java Basics - Anfänger-Themen 2
G ein programm nicht mehrmals starten können Java Basics - Anfänger-Themen 6
J Externes Programm starten Java Basics - Anfänger-Themen 7
F Externes Programm aus Java starten Java Basics - Anfänger-Themen 3
M java +Programm ohne cmd (Dosbox) Win XP starten? Java Basics - Anfänger-Themen 3
C Java-Programm auf Kommandozeilenebene starten Java Basics - Anfänger-Themen 7
C Kann kein Java Programm starten Java Basics - Anfänger-Themen 8
K Programm von selbsterstellter Oberfläche starten Java Basics - Anfänger-Themen 2
G Java Applikation ein Programm mit Parameterübergabe starten Java Basics - Anfänger-Themen 3
T Java Programm ohne Eclipse starten / wie ? Java Basics - Anfänger-Themen 8
G Aus Programm anderes Programm starten Java Basics - Anfänger-Themen 2
L Webseiten über Java Programm starten Java Basics - Anfänger-Themen 2
B Programm .exe starten Java Basics - Anfänger-Themen 30
W classpath / jar / Programm aus Konsole Starten Problem Java Basics - Anfänger-Themen 2
G Programm lässt sich nicht aus der Konsole starten Java Basics - Anfänger-Themen 2
A programm starten Java Basics - Anfänger-Themen 6
B Programm sich selbst neu starten lassen Java Basics - Anfänger-Themen 8
O Programm neu starten Java Basics - Anfänger-Themen 2
J Java Programm starten! Java Basics - Anfänger-Themen 2
M Programm neu starten Java Basics - Anfänger-Themen 4
K Programm in der main()-Methode starten: Wie? Komme von C++ Java Basics - Anfänger-Themen 11
E Ohne Editor Java- Programm starten Java Basics - Anfänger-Themen 4
Linad externes programm in java starten? Java Basics - Anfänger-Themen 2
R Programm starten mit Konsole Java Basics - Anfänger-Themen 7
S Java-Programm mit .bat File starten Java Basics - Anfänger-Themen 8
thE_29 Programm starten Java Basics - Anfänger-Themen 16
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
M Mini Jar-Programm Java Basics - Anfänger-Themen 51
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
Z Programm Ideen Java Basics - Anfänger-Themen 8
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
T Programm stürzt ab Java Basics - Anfänger-Themen 40
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
K Ist das Programm schlecht bzw. schlampig programmiert ? Java Basics - Anfänger-Themen 9
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
M Von Eclipse zum richtigen Programm Java Basics - Anfänger-Themen 1
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
D Anfängerfrage zu meinem Programm. Java Basics - Anfänger-Themen 15
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 22
Kydo Programm Beschreibung Java Basics - Anfänger-Themen 3
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 7
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M Wo hält das Programm an? Java Basics - Anfänger-Themen 11
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
Fugover Kopfrechnen-Programm Java Basics - Anfänger-Themen 6
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
A wie kann ich es in meinem Programm rein tun Java Basics - Anfänger-Themen 8

Ähnliche Java Themen


Oben