Zitat:
Zitat von Greeven try und catch muss ich nicht verwenden. Das Programm von mir aus dem ersten Post funktioniert doch auch. Nur noch das throws Exception ran. |
Nein, musst du nicht. Deine main Methode wird ja schließlich von einer anderen Methode gerufen, welche die Fehlerbehandlung macht
Falls du das Kapitel über Exceptions nicht nicht hinreichend studiert hat: Man fängt SPÄTESTENS in der ersten Methode, welche das Programm startet (in diesem Fall die main) alle möglichen Exceptions ab und benahdelt diese entsprechend.
Man muss das nicht tun, man kann auch der aufrufenden Methode sagen "behandel diese Fehler, ich hab keine Lust", allerdings sollte man dort das die Fehlerbehandlung implementieren. Da aber die main selten von einer anderen Java Methode gerufen wird, ist dort Fehlerbehandlung angebracht.
Was passiert wenn man das nicht macht?
1. andere die das Programm lesen werden einen nicht für voll nehmen. Ein Program ohne Fehlerbehandlung (z.b. aussagekräftiges Logging) beenden zu lassen ist "Hello World" Stil von Anfängern.
2. Fehler rauschen an einem vorbei ohne das man eine Ahnung hat, dass diese passiert sind. zumindest ein printStackTrace sollte man schon verwenden, um wenigstens die Fehlerursache bestimmen zu können.
edit: Warum schreib ich das - Eon hat das doch 20 min vor deinem Post korrekt dargestellt.

naja ...
Zitat:
Zitat von Greeven Ich nehme an, dass ich noch nicht genug weiß, um mir dir Frage selbst zu beantworten und es vielleicht sogar in der API nachlesen könnte.
Warum gibt es eigentlich verschiedene Varianten zum Einlesen?
In dem Buch, was ich grad lese habe ich jetzt diese Variante kennengelernt:
import java.util.Scanner; noch dazu |
Es gibt nicht in jedem Fall etwas vom stdin zu lesen, eventuell möchtest du andere Datenströme verwenden (z.B. eine named pipe oder was weiß ich den ausgabestrom eines anderen Programms), daher gibt es auch zeichenbasierte Einleseverfahren.
Gruß
tele