(J'utilise en fait Ektron CMS, et j'utilise Widgets
, qui sont une extension très simple d'un contrôle utilisateur).Attraper des exceptions non gérées dans le contrôle Web pour permettre la page de rendre
Problème: J'ai une page Web qui contient de nombreux widgets. Si une exception se produit dans l'un de ces widgets, la page s'arrête et l'utilisateur reçoit une erreur de serveur. Je voudrais avoir des exceptions non gérées dans un widget pour enregistrer l'exception, arrêter l'affichage de ce widget et permettre à la page de continuer.
E.g. Vous avez un widget météo sur chaque page qui obtient des données via un service Web. Si le service Web vous envoie du code XML malformé, vous souhaitez que le site soit toujours disponible.
solutions possibles:
Plan A) Dans chaque widget enveloppent le contenu de la fonction d'initialisation ou d'affichage dans une instruction try-catch.
Plan B) Créez une nouvelle interface IRobustWidget qui étend IWidget et exécute Try-Catch.
Ces deux options me semblent un peu «sales», car j'ai lu que les instructions génériques catch (exception)
sont un peu anti-pattern. Je me penche vers le plan B, car cela semble plus modulaire.
- Est-ce que j'ai manqué d'autres options?
- Est-ce qu'un Try-Catch générique est ok à cet égard?
(I've also logged this at the Ektron forums)
Merci, je n'avait pas considéré cela. Cela correspond à ma décision de rendre les contrôles eux-mêmes plus responsables de la gestion des erreurs. Je m'éloigne d'essayer de permettre à la page de rendre «n'importe quoi», car il semble y avoir trop d'efforts à ce stade de notre projet. – Spongeboy