Hallo zusammen,
man liest ja immer wieder, dass man unchecked exceptions den checked exceptions vorziehen soll. Weiterhin gilt es ja als guter Stil, wenn man nicht für alles eine eigene Exception entwerfen soll, sondern auf bereits vorhandene Exceptions zurückgreifen soll (sofern möglich natürlich). Leider beißen sich diese beiden Ansätze von Zeit zu Zeit. Deshalb wäre meine Frage, ob es best practices gibt die einen der beiden Ansätze priorisieren?
Ich habe z.b. eine Methode getFilepath(), die nur einen Dateipfad zurückgeben soll, wenn die Datei bereits gespeichert wurde. Ist dies nicht der Fall, möchte ich einen Exception werfen lassen. Um das zu erreichen, werfe ich einen NoSuchFieldError (unchecked). Jetzt kommt jedoch eine weitere Methode (checkAttachmentState()) hinzu, die den direkten Aufruf der Methode getFilepath() kapselt und in deren Kontext eine FileNotFoundException (checked) viel logischer erscheint als ein NoSuchFieldError.
Meine Frage ist jetzt, was gilt denn in einem solchen Fall als guter Programmierstil? NoSuchFieldError weiterverwenden und somit beide o.g. Ansätze vereinen, auch wenn der Name des Fehlers nicht intuitiv und für den Kontext passend ist? Oder eine checked Exception a la FileNotFoundException werfen, dabei gegen einen der o. g. Ansätze verstoßen und dafür aber eine zum Kontext passende Exception nutzen? Oder doch eine eigene unchecked Exception ableiten? Würde gerne mal eure Meinungen dazu lesen.
Gruß
maulwurfen
man liest ja immer wieder, dass man unchecked exceptions den checked exceptions vorziehen soll. Weiterhin gilt es ja als guter Stil, wenn man nicht für alles eine eigene Exception entwerfen soll, sondern auf bereits vorhandene Exceptions zurückgreifen soll (sofern möglich natürlich). Leider beißen sich diese beiden Ansätze von Zeit zu Zeit. Deshalb wäre meine Frage, ob es best practices gibt die einen der beiden Ansätze priorisieren?
Ich habe z.b. eine Methode getFilepath(), die nur einen Dateipfad zurückgeben soll, wenn die Datei bereits gespeichert wurde. Ist dies nicht der Fall, möchte ich einen Exception werfen lassen. Um das zu erreichen, werfe ich einen NoSuchFieldError (unchecked). Jetzt kommt jedoch eine weitere Methode (checkAttachmentState()) hinzu, die den direkten Aufruf der Methode getFilepath() kapselt und in deren Kontext eine FileNotFoundException (checked) viel logischer erscheint als ein NoSuchFieldError.
Meine Frage ist jetzt, was gilt denn in einem solchen Fall als guter Programmierstil? NoSuchFieldError weiterverwenden und somit beide o.g. Ansätze vereinen, auch wenn der Name des Fehlers nicht intuitiv und für den Kontext passend ist? Oder eine checked Exception a la FileNotFoundException werfen, dabei gegen einen der o. g. Ansätze verstoßen und dafür aber eine zum Kontext passende Exception nutzen? Oder doch eine eigene unchecked Exception ableiten? Würde gerne mal eure Meinungen dazu lesen.
Gruß
maulwurfen