Wie ich verstanden habe, verwenden wir Guava Preconditions, um schnell zu versagen, bevor einige Objekte Zustände ändern (eine nette Antwort here von Stackoverflow). Und das ist gut. Es werden jedoch Runtime-Ausnahmen ausgelöst, und dies ist nicht die bevorzugte Ausnahme für den Benutzer einer Anwendung (500 Fehler usw.). Also brauche ich Sie, um mir beim Design zu helfen.Guava Voraussetzungen RuntimeExceptions Handhabung
Ich habe eine Schnittstelle, die viele Methoden deklariert. Jede Methode hat Argumente, die kontrolliert werden müssen (zB: nicht null). So in der Implementierungsklasse I Befehle verwenden wie folgt aus:
Preconditions.checkNotNull(fooObj);
jedoch das Programm diese API aufrufen könnte aufgrund einer Laufzeitausnahme abstürzen, ist, dass in diesem Fall Nullpointer.
Wie gehen Sie mit diesen ungeprüften Ausnahmen um?
Vielen Dank.
-------- EDIT Die App Schichten:
Data Access Layer
API die Methoden erklärt, die DTO
Verfahren auszutauschen, um die API-Implementierung und Überprüfe Argumente mit Guava
Webservice in Abhängigkeit von der Prozessschicht
Ein Programm, das eine Ausnahme auslöst, stürzt nicht ab. Es löst eine Ausnahme aus. Es scheint, dass Sie eine Web-App schreiben. Dadurch wird dem Benutzer eine Fehlerseite angezeigt. Sie können auf dieser Fehlerseite zeigen, was Sie wollen.Aber eine solche Ausnahme zeigt, dass Ihr Code einen Fehler hat. Was Sie also tun müssen, ist Ihren Code zu reparieren, um diesen Fehler zu vermeiden und somit zu vermeiden, dass diese Fehlerseite zuerst angezeigt wird. –
Absolut, eine 500 zeigt einen Fehler im Code zu beheben. Auf welcher Ebene ist es also am bequemsten, diese Ausnahme zu behandeln? Zum Beispiel in der Methode, die die API aufruft, die eine Ausnahme zum Einfangen und Nichtüberprüfen erzwingen muss? – Farah
Sie haben nichts über Ihre App und ihre Layer gesagt. Ich weiß nicht, welche Art von App es ist, welche Technologie es verwendet, welche Schichten es hat. Wenn es eine traditionelle Webapp ist, sollte es überhaupt nicht gefangen werden. Lass es einfach blasen, bis der Webcontainer eine Fehlerseite anzeigt. –