Ich ringe immer wieder damit. Ich versuche, die richtige Balance zwischen Versuch / Fang und Code zu finden, und werde nicht zu einem obszönen Durcheinander von Tabs, Klammern und Ausnahmen, die wie eine heiße Kartoffel auf den Call-Stack zurückgeworfen werden. Ich habe zum Beispiel eine App, die ich gerade entwickle und die SQLite verwendet. Ich habe eine Datenbankschnittstelle, die die SQLite-Aufrufe abstrahiert, und ein Modell, das Dinge akzeptiert, die in die / aus der Datenbank gelangen ... Wenn also eine SQLite-Ausnahme auftritt, muss sie an das Modell übergeben werden (von wem sie aufgerufen wurde) ), der es an denjenigen weitergeben muss, der den AddRecord / DeleteRecord / whatever aufgerufen hat ...
Ich bin ein Fan von Ausnahmen im Gegensatz zur Rückgabe von Fehlercodes, da Fehlercodes ignoriert, vergessen usw. werden können, während eine Ausnahme im Wesentlichen behandelt werden muss (zugegeben, ich könnte sie abfangen und sofort weitermachen ...) Sicher, es muss einen besseren Weg geben als das, was ich gerade vorhabe.
Edit: Ich hätte das etwas anders formulieren sollen. Ich verstehe es als verschiedene Typen und solche wiederzuwerfen, ich habe das schlecht formuliert und das ist meine eigene Schuld. Meine Frage ist ... wie hält man den Code dabei am besten sauber? Nach einer Weile fühlt es sich für mich sehr unübersichtlich an.