Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupérer les erreurs sur une fenêtre

4 réponses
Avatar
Sylvain MALLEVAL
Bonjour,

J'essaye de récupérer les erreurs sur des fenêtres. Pour récupérer les
erreurs sur de fenêtres modale (.showdialog), ce n'est pas compliqué,
j'encadre mon .showdialog par un try...
Par contre, pour les fenêtres non modale (.show), commet faire pour
récupérer les erreurs de la fenêtre quand c'est elle qui plante ????

J'espère que j'ai été clair...

Merci pour votre aide

Sylvain

4 réponses

Avatar
Paul Bacelar
Ne jamais catcher une exception, si on ne sait pas la traiter. Et une
afficher une messageBox, ce n'est pas traiter une exception.

Une fenêtre de produit jamais d'exception, c'est l'appel d'une méthode qui
produit une exception et vous devez être à même de connaître les exceptions
quelle est susceptible de produire (la méthode, pas la fenêtre ;-) ) et dont
vous êtes capable de traiter sa survenu lors de son appel comme "showdialog"
qui est une méthode et pas une fenêtre.

--
Paul Bacelar

"Sylvain MALLEVAL" <devbnet@[antispam]free.fr> wrote in message
news:
Bonjour,

J'essaye de récupérer les erreurs sur des fenêtres. Pour récupérer les
erreurs sur de fenêtres modale (.showdialog), ce n'est pas compliqué,
j'encadre mon .showdialog par un try...
Par contre, pour les fenêtres non modale (.show), commet faire pour
récupérer les erreurs de la fenêtre quand c'est elle qui plante ????

J'espère que j'ai été clair...

Merci pour votre aide

Sylvain




Avatar
Sylvain MALLEVAL
ok je suis d'accord...
ce que je fait quand j'ai une exception, j'envoie un mail avec le message
d'erreur à mon "centre de maintenance" pour correction dans une nouvelle
version.

quand je fait un ".showdialog" d'une forme, si une erreur se déclenche dans
la form, l'erreur remonte jusqu'au .showdialog qui est encadré par un try,
et la je traite l'erreur...

Par contre, quand je fait un ".show", si le .show ne fait pas d'erreur, le
programme continue... jusque là, ca va...
Par contre, je voudrais pouvoir récupérer les erreurs dans cette form quand
il y a un traitement qui plante.
La première solution serait que j'encadre tous mes traitements de la form
par des try/catch... Mais c long et ch...
Donc, je voudrais savoir comment récupérer les erreurs d'une forme non
modale (.show) avec un seul Try/catch (si c possible)

Pour l'ensemble de mon application, pour récupérer les erreurs qui ne sont
pas géré, j'ai créer une fonction de traitement d'erreur (traiterreur)
et j'ai fait un addhandler application.threadException; adressof traiterreur

J'aimerais faire pareil avec mes forms non modal...

Mais peut-être ke c pas possible

Merci

"Paul Bacelar" a écrit dans le message
de news:
Ne jamais catcher une exception, si on ne sait pas la traiter. Et une
afficher une messageBox, ce n'est pas traiter une exception.

Une fenêtre de produit jamais d'exception, c'est l'appel d'une méthode qui
produit une exception et vous devez être à même de connaître les
exceptions
quelle est susceptible de produire (la méthode, pas la fenêtre ;-) ) et
dont
vous êtes capable de traiter sa survenu lors de son appel comme
"showdialog"
qui est une méthode et pas une fenêtre.

--
Paul Bacelar

"Sylvain MALLEVAL" <devbnet@[antispam]free.fr> wrote in message
news:
Bonjour,

J'essaye de récupérer les erreurs sur des fenêtres. Pour récupérer les
erreurs sur de fenêtres modale (.showdialog), ce n'est pas compliqué,
j'encadre mon .showdialog par un try...
Par contre, pour les fenêtres non modale (.show), commet faire pour
récupérer les erreurs de la fenêtre quand c'est elle qui plante ????

J'espère que j'ai été clair...

Merci pour votre aide

Sylvain








Avatar
Paul Bacelar
C'est étrange, vous semblez bien maîtriser l'ensemble du FrameWork mais vous
vous obstinez à croire qu'une fenêtre est une entité capable de générer des
exceptions.

Seules les threads sont capables de générer des exceptions.

Quand vous faite un try catch autour d'un "showdialog", ce n'est pas la
fenêtre que vous monitorez mais le thread courant qui va créer une fenêtre
et attendre la réponse de l'utilisateur. La fin de monitoring n'est pas due
au fait que la fenêtre est disparue, mais que le thread est sortie du try
lors de son flux d'exécution.

Quand vous faite un "show", vous créez une fenêtre qui est accessible à
l'ensemble des threads de votre application si on utilise une référence sur
elle dans contexte de cet autre tread (avec les dangers que cela implique
quand à l'accès aux données comme les titres des fenêtres qui ne sont pas
thread-safe).

Votre approche avec l'application.threadException est bonne et permet de
traiter les exceptions au niveau de l'application.

http://msdn.microsoft.com/msdnmag/issues/04/06/NET/

Pensez au fait que votre handler sera dans un environnement extrêmement
hostile comme des problèmes de mémoire et de dépassement de pile. Je pense
que l'envoie d'un mail est une tache trop complexe pour pouvoir être
fiabilisé dans un contexte si défavorable.

Une approche avec AutoDumpPlus (ADP) vous permettra d'avoir le même niveau
de fonctionnalité voir bien supérieur, avec un meilleur niveau de confiance
au prix d'une installation un peu plus lourde. Mais les msi sont nos amis
;-)
--
Paul Bacelar


"Sylvain MALLEVAL" <devbnet@[antispam]free.fr> wrote in message
news:
ok je suis d'accord...
ce que je fait quand j'ai une exception, j'envoie un mail avec le message
d'erreur à mon "centre de maintenance" pour correction dans une nouvelle
version.

quand je fait un ".showdialog" d'une forme, si une erreur se déclenche


dans
la form, l'erreur remonte jusqu'au .showdialog qui est encadré par un try,
et la je traite l'erreur...

Par contre, quand je fait un ".show", si le .show ne fait pas d'erreur, le
programme continue... jusque là, ca va...
Par contre, je voudrais pouvoir récupérer les erreurs dans cette form


quand
il y a un traitement qui plante.
La première solution serait que j'encadre tous mes traitements de la form
par des try/catch... Mais c long et ch...
Donc, je voudrais savoir comment récupérer les erreurs d'une forme non
modale (.show) avec un seul Try/catch (si c possible)

Pour l'ensemble de mon application, pour récupérer les erreurs qui ne sont
pas géré, j'ai créer une fonction de traitement d'erreur (traiterreur)
et j'ai fait un addhandler application.threadException; adressof


traiterreur

J'aimerais faire pareil avec mes forms non modal...

Mais peut-être ke c pas possible

Merci

"Paul Bacelar" a écrit dans le message
de news:
> Ne jamais catcher une exception, si on ne sait pas la traiter. Et une
> afficher une messageBox, ce n'est pas traiter une exception.
>
> Une fenêtre de produit jamais d'exception, c'est l'appel d'une méthode


qui
> produit une exception et vous devez être à même de connaître les
> exceptions
> quelle est susceptible de produire (la méthode, pas la fenêtre ;-) ) et
> dont
> vous êtes capable de traiter sa survenu lors de son appel comme
> "showdialog"
> qui est une méthode et pas une fenêtre.
>
> --
> Paul Bacelar
>
> "Sylvain MALLEVAL" <devbnet@[antispam]free.fr> wrote in message
> news:
>> Bonjour,
>>
>> J'essaye de récupérer les erreurs sur des fenêtres. Pour récupérer les
>> erreurs sur de fenêtres modale (.showdialog), ce n'est pas compliqué,
>> j'encadre mon .showdialog par un try...
>> Par contre, pour les fenêtres non modale (.show), commet faire pour
>> récupérer les erreurs de la fenêtre quand c'est elle qui plante ????
>>
>> J'espère que j'ai été clair...
>>
>> Merci pour votre aide
>>
>> Sylvain
>>
>>
>
>




Avatar
Sylvain MALLEVAL
Merci pour le détails de ce que tu m'explique...
En fait, ce n'est pas l'application qui m'envoie un mail. Je me contente de
me connecter à un web service et je lui envoie
le message d'erreur. C'est le web service qui s'occupe d'envoyer le mail
(donc au niveau du serveur).
Jusqu'à maintenant, ça a peu prés fonctionner...

J'ai bien compris la logique du truc je crois... Et je comprend bien que
cela semble ne pas être possible sur un .show.
Je me suis formé sur le tas et c vrai que je connais le framework de façon
empirique

Je ne connais pas autodumpplus et je n'ais hélas pas le temps de creuser en
question
Je vais tout de même regarder le lien

Merci pour votre aide

Sylvain

"Paul Bacelar" a écrit dans le message
de news:
C'est étrange, vous semblez bien maîtriser l'ensemble du FrameWork mais
vous
vous obstinez à croire qu'une fenêtre est une entité capable de générer
des
exceptions.

Seules les threads sont capables de générer des exceptions.

Quand vous faite un try catch autour d'un "showdialog", ce n'est pas la
fenêtre que vous monitorez mais le thread courant qui va créer une fenêtre
et attendre la réponse de l'utilisateur. La fin de monitoring n'est pas
due
au fait que la fenêtre est disparue, mais que le thread est sortie du try
lors de son flux d'exécution.

Quand vous faite un "show", vous créez une fenêtre qui est accessible à
l'ensemble des threads de votre application si on utilise une référence
sur
elle dans contexte de cet autre tread (avec les dangers que cela implique
quand à l'accès aux données comme les titres des fenêtres qui ne sont pas
thread-safe).

Votre approche avec l'application.threadException est bonne et permet de
traiter les exceptions au niveau de l'application.

http://msdn.microsoft.com/msdnmag/issues/04/06/NET/

Pensez au fait que votre handler sera dans un environnement extrêmement
hostile comme des problèmes de mémoire et de dépassement de pile. Je pense
que l'envoie d'un mail est une tache trop complexe pour pouvoir être
fiabilisé dans un contexte si défavorable.

Une approche avec AutoDumpPlus (ADP) vous permettra d'avoir le même niveau
de fonctionnalité voir bien supérieur, avec un meilleur niveau de
confiance
au prix d'une installation un peu plus lourde. Mais les msi sont nos amis
;-)
--
Paul Bacelar


"Sylvain MALLEVAL" <devbnet@[antispam]free.fr> wrote in message
news:
ok je suis d'accord...
ce que je fait quand j'ai une exception, j'envoie un mail avec le message
d'erreur à mon "centre de maintenance" pour correction dans une nouvelle
version.

quand je fait un ".showdialog" d'une forme, si une erreur se déclenche


dans
la form, l'erreur remonte jusqu'au .showdialog qui est encadré par un
try,
et la je traite l'erreur...

Par contre, quand je fait un ".show", si le .show ne fait pas d'erreur,
le
programme continue... jusque là, ca va...
Par contre, je voudrais pouvoir récupérer les erreurs dans cette form


quand
il y a un traitement qui plante.
La première solution serait que j'encadre tous mes traitements de la form
par des try/catch... Mais c long et ch...
Donc, je voudrais savoir comment récupérer les erreurs d'une forme non
modale (.show) avec un seul Try/catch (si c possible)

Pour l'ensemble de mon application, pour récupérer les erreurs qui ne
sont
pas géré, j'ai créer une fonction de traitement d'erreur (traiterreur)
et j'ai fait un addhandler application.threadException; adressof


traiterreur

J'aimerais faire pareil avec mes forms non modal...

Mais peut-être ke c pas possible

Merci

"Paul Bacelar" a écrit dans le
message
de news:
> Ne jamais catcher une exception, si on ne sait pas la traiter. Et une
> afficher une messageBox, ce n'est pas traiter une exception.
>
> Une fenêtre de produit jamais d'exception, c'est l'appel d'une méthode


qui
> produit une exception et vous devez être à même de connaître les
> exceptions
> quelle est susceptible de produire (la méthode, pas la fenêtre ;-) ) et
> dont
> vous êtes capable de traiter sa survenu lors de son appel comme
> "showdialog"
> qui est une méthode et pas une fenêtre.
>
> --
> Paul Bacelar
>
> "Sylvain MALLEVAL" <devbnet@[antispam]free.fr> wrote in message
> news:
>> Bonjour,
>>
>> J'essaye de récupérer les erreurs sur des fenêtres. Pour récupérer les
>> erreurs sur de fenêtres modale (.showdialog), ce n'est pas compliqué,
>> j'encadre mon .showdialog par un try...
>> Par contre, pour les fenêtres non modale (.show), commet faire pour
>> récupérer les erreurs de la fenêtre quand c'est elle qui plante ????
>>
>> J'espère que j'ai été clair...
>>
>> Merci pour votre aide
>>
>> Sylvain
>>
>>
>
>