in derselben Methode zu werfen und zu catchen ist normalerweise unnötig, außer man möchte paar Ebenen von verschachtelten Schleifen oder so (relativ unsauber) überspringen,
zusammen mit throws an der Methode-Deklaration wird es endgültig unsinnig
man kann nicht beantworten was du wo wie machen musst, wenn nicht vorher klar ist, was fachlich passieren soll,
wofür willst du die Exceptions einsetzen, oder ist es ein Selbstzweck, 'soll drin sein irgendwie..'?
der normalste Weg ist throws an der Methoden-Deklaration und natürlich ein Werten in der Methode, das heißt ja das 'throws',
ein Hinweis das Exceptions geworfen werden
ergo findet das try/catch außerhalb statt, aber nicht zum Spass, sondern weil es Sinn ergeben soll,
wenn nur ein Aufrufer da ist, der direkt abfängt und ausgibt und sonst nichts passiert,
dann könnte man praktisch auch auf die Exception verzichten, gleich im Fehlerfall etwas ausgeben und die Methode beenden,
kommt fast auf dasselbe hinaus,
freilich dann noch die Frage des Rückgabewertes, insofern Exception schon besser,
dann weiß der Aufrufer vom Fehler und reagiert eben doch anders, verwendet nicht den nicht vorhandenen Rückgabewert
also kurzer Sinn: try/catch aus der Methode raus, zum Aufrufer
-------
@Volvagia
> Wäre das keine Steuerung von Programmcode? Falls man vorhat eine Datei zu schreiben wird ja auch vorher geprüft ob der Pfad und die Datei existiert und gegebenfalls angelegt, und nicht wild drauf losgeschrieben.
Exceptions sind (edit: auch) Steuerung von Programmcode, richtig
und was spielt die Datei für eine Rolle? möchtest du mit IOException oder zumindest FileNotFoundException jetzt auch noch API-Exceptions obsolet machen (nach eigenen Exception-Klassen)?
vieles geht ohne Exceptions, manche Programme oder tausende Zeilen Code hintereinander kommen ohne aus,
aber nicht alles läßt sich immer prüfen, immer gleich passend reagieren