Je travaille sur un code côté serveur qui enveloppe toutes les exceptions avant de les passer du côté client, en raison de tout cela des méthodes avec les clients ont le code suivantSEC pour Exception Emballage
try{
DoSomething();
} catch (ExceptionA e) {
throw new CustomException(AType, e);
} catch (ExceptionB e) {
throw new CustomException(BType, e);
} catch (Exception e) {
throw new CustomException(Unexpected, e);
}
d'avoir cette répété dans chaque méthode semble violer le principe DRY et je me demandais quelle serait la meilleure façon de le refactoriser. Par exemple, je pensais une méthode d'emballage tels que:
private void wrapException(Exception e) {
if (e instanceof ExceptionA) {
throw new CustomException(AType, e);
}
etc...
Bibliothèques intéressantes mais elles ne s'appliquent pas vraiment à mon problème. Je cherche à refactoriser une erreur standard, de préférence sans les bibliothèques externes. – FooBar
Oui, mais vous pouvez regarder comment fonctionne Throwables.propagate (code sage) –