J'ai une application Web avec SessionScopeWebModule activée, et je me demande comment pour gérer au mieux les exceptions métier (pas les exceptions Hibernate/DB). Je crois que AR 2.0 SessionScopeWebModule implémente implicitement la transaction - si une exception survient pendant la requête, les modifications effectuées pendant la session seront rejetées/annulées.Castle ActiveRecord SessionScopeWebModule gestion des exceptions
Pour mon application Web, la couche d'affaires sera bavard avec la DB, l'émission plusieurs CRUDs, disent
- entité Créer un
- Créer entité B
entité Say A a été créé. Toutefois, lors de la création de l'entité B, certaines règles métier n'ont pas été respectées et la couche de gestion renvoie une exception métier . Du point de vue de l'interface utilisateur, il est préférable de gérer l'exception d'entreprise et d'afficher un message convivial à l'utilisateur. C'est où le problème réside. Si l'exception est déjà traitée, SessionScopeWebModule va le long de penser que tout va bien à la fin de la demande et engage l'entité A dans la base de données, sans entité B.
Quelle est la meilleure pratique pour gérer les exceptions dans ce cas ? Je suis en pensant à une variable de session qui sera réinitialisée pour chaque nouvelle demande . Si une exception se produit, la variable sera marquée comme sale. Lorsque la requête se termine, SessionScopeWebModule vérifie d'abord la session pour voir si une exception s'est produite. Si c'est le cas, il appellera une FailSession .
Est-ce la voie à suivre? Et FailSession ferait le travail de rejeter changements à une session?
Merci!
Boyan