Gestion d'erreur d'application

octobre 8, 2008 14:52 by Jeremy

Dans le cadre d’un développement d’une application, on essaie tant bien que mal de gérer l’ensemble des exceptions qui peuvent survenir lors de l’utilisation d’une application. Cependant, nous ne sommes jamais à l’abri de l’utilisation hasardeuse que peut avoir l’utilisateur lambda (pour pas dire béta).

Aussi, il n’est pas rare de voir apparaitre ce genre de message assez agaçant pour le développeur, car il ne peut rien faire d’autre que de subir le message « banal » de Windows.

 

Cependant, il existe une parade à ce message.

En effet, il serait fort intéressant de pouvoir personnaliser ce message pour le rendre plus attractif, ou tout simplement de masquer ce message pour faire croire à l’utilisateur que tout marche pour le mieux. Nous verrons la première approche, car Windows de base connait très bien la seconde approche.

 

namespace WindowsApplication5
{
    static class Program
    {
        /// <summary>
        /// Point d'entrée principal de l'application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
        /// <summary>
        /// Methode de gestion de l'erreur
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
        {
            //On affiche ici la fenetre personnalisée
            FRM_Erreur maForm = new FRM_Erreur();
            maForm.ShowDialog();
        }
    }
}

Il suffit donc de s’abonner à l’evenement d’erreur de l’application. Cet evenement sera levé lorsqu’une erreur non gérée sera apparue.

FRM_Erreur dans ce cas, sera une simple fenetre montrant un label. Il peut tout a fait etre envisageable de faire passer l’exception a la fenetre pour afficher un detail de l’erreur.

Bon tres bien, nous avons donc une erreur qui est geré. Suite à cette gestion, on peut facilement imaginer des améliorations possibles  : Envoyer un mail à l'administrateur pour l'avertir du probleme, Faire une impression écran du moment de l'erreur pour l'envoyer avec le mail (pour que l'administrateur puisse reproduire la suite d'action qui a pu amener au problème). Mais tout ceci est une autre histoire Wink

 

 


Actuellement noté 4.2 par 6 personne(s)

  • Currently 4,166667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

La messagerie base de données SQL Server 2005

octobre 1, 2008 12:45 by Franck
Microsoft SQL Server 2005 intègre un outil fort intéressant qui permet de planifier des travaux plus ou moins complexes sur les bases de données. C'est fort pratique, il n'est plus nécessaire de le faire à la main, et on peut faire appel à des tâches SSIS... que du bonheur ... En revanche, ce qui serait bien, ce serait de ne pas avoir à consulter manuellement l'historique des logs, mais d'être automatiquement averti en cas de problème (ou pas) pour réagir en fonction... Heureusement, le database mail est là !

Le database mail, késako ?

 

On envoie un mail tout simplement pour dire  que la tâche est terminée, et surtout lorsqu'elle s'est terminée par un échec...  Alors comment faire ?

Première étape : configurer la messagerie base de données   

Au préalable, l'utilisateur doit avoir le rôle SYSADMIN :

Ensuite, on peut lancer le wizard de configuration du database Mail :

 

Le wizard propose une série d'étapes, la première option permet de configurer la messagerie dans son ensemble.

 

Bien sûr si le composant de messagerie de base de données n’est pas activé, il faut le faire ….

Ensuite, la configuration continue par la configuration d’un compte de messagerie qui sera chargé d’envoyer les alertes par mail.Un compte de messagerie contient toutes les informations nécessaires à SQL Server pour envoyer les mails via un serveur SMTP.

Ensuite le profil …

Un profil est une liste triée de comptes. C’est le profil qui va être utilisé dans SQL Server Agent pour envoyer les alertes.

 Les paramètres par défaut de la configuration du système …

Le récapitulatif qui va bien …

et le finish …

 

 

 

Deuxième étape : configurer SQL Server Agent

L’étape suivante consiste à indiquer à SQL Server Agent, au niveau du système d’alerte, d’activer le profil de messagerie de base de données, et de sélectionner celui qui a été créé précédemment.

Ensuite sur la tâche SQL Server Agent, on va spécifier quelle est la personne à qui le profil de messagerie doit envoyer le mail. Le Database mail permet d’en envoyer à des opérateurs. S’il n’existe pas déjà, il faut donc créer un opérateur :

 

et enfin, indiquer ensuite au travail SQL Server Agent, l’envoyer une notification à l’opérateur lors de l’échec du travail.

 

Conclusion

Il s’agit d’une utilisation basique du database Mail à des fin d’administration ou de gestion, mais au-delà de cela, il s’agit d’une réelle solution d’entreprise permettant aux applications base de données d’envoyer des mails aux utilisateurs : résultats d’une requête, des fichiers, etc … On peut très bien imaginer tout un tas d’applications pratiques dans les solutions courante de gestion :

  • envoi une alerte avec un résumé à un responsable commercial, lorsqu’un devis est édité avec un prix de vente en dessous des seuils autorisés,
  • Un seuil de vente est atteint et génère une alerte particulière avec en pièce jointe un tableau de bord,
  • ...

 


Actuellement noté 4.3 par 4 personne(s)

  • Currently 4,25/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Ouverture du blog !

septembre 25, 2008 10:25 by Franck

Vous le vouliez, vous l'avez !

Le blog est enfin ouvert, il vous permettra d'étaler votre expertise pour épater vos collègues, et surtout n'oubliez pas, un bug ou blague douteuse = 1 article, 5 articles = 1 BDC ... et puis si vous en êtes d'accord, on garde quand même la BDC pour évènement exceptionnel ...

A vos keyboards !

 


Actuellement noté 3.3 par 11 personne(s)

  • Currently 3,272727/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5