|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour
J'aimerai savoir comment faire pour que suite a une exception (presque volontaire on va dire) je n'ai pas le rapport a envoyer a microsoft. Je souhaite pas desactiver l'envoie des rapport d'erreur mais juste faire en sorte de les controler deuis l'application en delphi. J'ai un bloc Try qui fait un application.terminate suite a une exception. C'est pas un plantage de l'application dans ce cas precis car je peux sans probleme eviter l'exception, mais j'en ai besoin pour le moment. Merci de votre aide. -- La vie, c'est comme une boite de chocolat, on sait jamais sur quoi on va tomber... C'est de la connerie, il suffit de retourner la boite pour voir les differente sorte sur la photo. Seulement maintenant t'es dans la merde parce que les chocolats sont par terre.... |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
/Dans son message précédent, _Passé simple de l'imparfait_ a écrit/ :
> Bonjour > J'aimerai savoir comment faire pour que suite a une exception (presque > volontaire on va dire) je n'ai pas le rapport a envoyer a microsoft. > Je souhaite pas desactiver l'envoie des rapport d'erreur mais juste > faire en sorte de les controler deuis l'application en delphi. > J'ai un bloc Try qui fait un application.terminate suite a une > exception. C'est pas un plantage de l'application dans ce cas precis > car je peux sans probleme eviter l'exception, mais j'en ai besoin pour > le moment. > Merci de votre aide. ben pas vraiment de solution: ton exception se classe dans la catégorie des "exceptions non gérées" or justement, le rapport est là pour signaler les "exceptions non gérées"..... -- */Teträm/* http://www.tetram.org "Ecoute toujours ton estomac, c'est quelqu'un de confiance" - Proverbe Troll |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Passé simple de l'imparfait schrieb:
> Bonjour > > J'aimerai savoir comment faire pour que suite a une exception (presque > volontaire on va dire) je n'ai pas le rapport a envoyer a microsoft. > Je souhaite pas desactiver l'envoie des rapport d'erreur mais juste > faire en sorte de les controler deuis l'application en delphi. > > J'ai un bloc Try qui fait un application.terminate suite a une > exception. C'est pas un plantage de l'application dans ce cas precis > car je peux sans probleme eviter l'exception, mais j'en ai besoin pour > le moment. > > Merci de votre aide. > > > Avant d'appeller "Terminate", tu fais un "Abort;" |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
On Mon, 15 Oct 2007 12:40:04 +0200, Loïs Bégué <delphi@begue.de>
wrote: >Avant d'appeller "Terminate", tu fais un "Abort;" non Je vais essayer -- La vie, c'est comme une boite de chocolat, on sait jamais sur quoi on va tomber... C'est de la connerie, il suffit de retourner la boite pour voir les differente sorte sur la photo. Seulement maintenant t'es dans la merde parce que les chocolats sont par terre.... |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
On Mon, 15 Oct 2007 12:40:04 +0200, Loïs Bégué <delphi@begue.de>
wrote: >Passé simple de l'imparfait schrieb: >> Bonjour >> >> J'aimerai savoir comment faire pour que suite a une exception (presque >> volontaire on va dire) je n'ai pas le rapport a envoyer a microsoft. >> Je souhaite pas desactiver l'envoie des rapport d'erreur mais juste >> faire en sorte de les controler deuis l'application en delphi. >> >> J'ai un bloc Try qui fait un application.terminate suite a une >> exception. C'est pas un plantage de l'application dans ce cas precis >> car je peux sans probleme eviter l'exception, mais j'en ai besoin pour >> le moment. >> >> Merci de votre aide. >> >> >> >Avant d'appeller "Terminate", tu fais un "Abort;" Ca ne change rien Dommage qu'on ne puisse pas dire a windows de ne pas traiter ce rapport d'erreur. -- La vie, c'est comme une boite de chocolat, on sait jamais sur quoi on va tomber... C'est de la connerie, il suffit de retourner la boite pour voir les differente sorte sur la photo. Seulement maintenant t'es dans la merde parce que les chocolats sont par terre.... |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
CaAMerde := False;
try try raise Exception.Create('Coucou'); except CaAMerde := True; end; finally if CaAMerde then Application.Terminate; end; Passé simple de l'imparfait <newsreader2007@enlever_moi_pour_me_repondre_free. fr> :: Bonjour :: :: J'aimerai savoir comment faire pour que suite a une exception :: (presque :: volontaire on va dire) je n'ai pas le rapport a envoyer a microsoft. :: Je souhaite pas desactiver l'envoie des rapport d'erreur mais juste :: faire en sorte de les controler deuis l'application en delphi. :: :: J'ai un bloc Try qui fait un application.terminate suite a une :: exception. C'est pas un plantage de l'application dans ce cas precis :: car je peux sans probleme eviter l'exception, mais j'en ai besoin :: pour :: le moment. :: :: Merci de votre aide. :: :: :: :: -- :: La vie, c'est comme une boite de chocolat, on sait jamais sur quoi :: on va tomber... :: C'est de la connerie, il suffit de retourner la boite pour voir les :: differente sorte sur la photo. Seulement maintenant t'es dans la :: merde parce que les chocolats sont par terre.... |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
On Tue, 16 Oct 2007 21:20:02 +0200, "BigGrizzly"
<biggrizzlyENLEVERCA@zoo-logiqueETCAAUSSI.org> wrote: >CaAMerde := False; >try > try > raise Exception.Create('Coucou'); > except > CaAMerde := True; > end; >finally > if CaAMerde then > Application.Terminate; >end; Je viens d'essayer mais je n'arrive pas a remplacer raise Exception.Create('Coucou'); par raise rewrite(monfichier); Apparement c'est pas une class et moi j'ai toujours été nul en classe. -- La vie, c'est comme une boite de chocolat, on sait jamais sur quoi on va tomber... C'est de la connerie, il suffit de retourner la boite pour voir les differente sorte sur la photo. Seulement maintenant t'es dans la merde parce que les chocolats sont par terre.... |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Passé simple de l'imparfait a écrit :
> On Tue, 16 Oct 2007 21:20:02 +0200, "BigGrizzly" > <biggrizzlyENLEVERCA@zoo-logiqueETCAAUSSI.org> wrote: > >> CaAMerde := False; >> try >> try >> raise Exception.Create('Coucou'); >> except >> CaAMerde := True; >> end; >> finally >> if CaAMerde then >> Application.Terminate; >> end; > > Je viens d'essayer mais je n'arrive pas a remplacer > raise Exception.Create('Coucou'); > par > raise rewrite(monfichier); > > Apparement c'est pas une class et moi j'ai toujours été nul en classe. > > Tu vires le raise......... |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
On Tue, 30 Oct 2007 23:53:15 +0100, BigGrizzly
<bigENLEVERCAgrizzly@zoo-loETCAAUSSIgique.org> wrote: >> Je viens d'essayer mais je n'arrive pas a remplacer >> raise Exception.Create('Coucou'); >> par >> raise rewrite(monfichier); >> >> Apparement c'est pas une class et moi j'ai toujours été nul en classe. >> >> > >Tu vires le raise......... Dans ce cas là, ca ne change rien. J'ai toujours le rapport d'erreur. -- La vie, c'est comme une boite de chocolat, on sait jamais sur quoi on va tomber... C'est de la connerie, il suffit de retourner la boite pour voir les differente sorte sur la photo. Seulement maintenant t'es dans la merde parce que les chocolats sont par terre.... |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
Passé simple de l'imparfait wrote:
> On Tue, 30 Oct 2007 23:53:15 +0100, BigGrizzly > <bigENLEVERCAgrizzly@zoo-loETCAAUSSIgique.org> wrote: > >>> Je viens d'essayer mais je n'arrive pas a remplacer >>> raise Exception.Create('Coucou'); >>> par >>> raise rewrite(monfichier); >>> >>> Apparement c'est pas une class et moi j'ai toujours été nul en classe. >>> >>> >> Tu vires le raise......... > > Dans ce cas là, ca ne change rien. J'ai toujours le rapport d'erreur. Oui, parce que faut pas faire un try..finally, mais un try..except De cette manière, tu "bouffes" l'exception, elle ne quitte pas le bloc except. Bon, c'est crado, mais ça marche. Le mieux c'est d'utiliser un truc du style JclDebug et le dialogue associé qui fait un joli rapport d'erreur et t'empêche pas de continuer. |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
Oui, mais là, de toute évidence, on a un souci beaucoup plus grave qui fait
que la gestion d'exception de Delphi est outrepassée... Ceci dit, il pourrait être intéressant de tester la ligne Rewrite encadrée avec {$I-} ... {$I+} (je dis ça de mémoire). Et il pourrait être intéressant de savoir pourquoi le Rewrite plante... ça permettrait d'éventuellement éviter de l'exécuter en vérifiant préalablement que les conditions sont réunies pour l'exécuter. OBones <obones_dfd_@_zeea_altern.org> :: Passé simple de l'imparfait wrote: ::: On Tue, 30 Oct 2007 23:53:15 +0100, BigGrizzly ::: <bigENLEVERCAgrizzly@zoo-loETCAAUSSIgique.org> wrote: ::: ::::: Je viens d'essayer mais je n'arrive pas a remplacer ::::: raise Exception.Create('Coucou'); ::::: par ::::: raise rewrite(monfichier); ::::: ::::: Apparement c'est pas une class et moi j'ai toujours été nul en ::::: classe. ::::: ::::: :::: Tu vires le raise......... ::: ::: Dans ce cas là, ca ne change rien. J'ai toujours le rapport ::: d'erreur. :: :: Oui, parce que faut pas faire un try..finally, mais un try..except :: De cette manière, tu "bouffes" l'exception, elle ne quitte pas le :: bloc except. Bon, c'est crado, mais ça marche. :: Le mieux c'est d'utiliser un truc du style JclDebug et le dialogue :: associé qui fait un joli rapport d'erreur et t'empêche pas de :: continuer. |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
en execution seule ou dans l'EDI?
/_Passé simple de l'imparfait_ a pensé très fort/ : > On Tue, 30 Oct 2007 23:53:15 +0100, BigGrizzly > <bigENLEVERCAgrizzly@zoo-loETCAAUSSIgique.org> wrote: >>> Je viens d'essayer mais je n'arrive pas a remplacer >>> raise Exception.Create('Coucou'); >>> par >>> raise rewrite(monfichier); >>> >>> Apparement c'est pas une class et moi j'ai toujours été nul en classe. >>> >> >> Tu vires le raise......... > Dans ce cas là, ca ne change rien. J'ai toujours le rapport d'erreur. -- Faust "Une âme en peine peut en cacher une autre" |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
BigGrizzly schrieb:
> Oui, mais là, de toute évidence, on a un souci beaucoup plus grave qui fait > que la gestion d'exception de Delphi est outrepassée... > > Ceci dit, il pourrait être intéressant de tester la ligne Rewrite encadrée > avec {$I-} ... {$I+} (je dis ça de mémoire). > > Et il pourrait être intéressant de savoir pourquoi le Rewrite plante... ça > permettrait d'éventuellement éviter de l'exécuter en vérifiant préalablement > que les conditions sont réunies pour l'exécuter. > > OBones <obones_dfd_@_zeea_altern.org> > :: Passé simple de l'imparfait wrote: > ::: On Tue, 30 Oct 2007 23:53:15 +0100, BigGrizzly > ::: <bigENLEVERCAgrizzly@zoo-loETCAAUSSIgique.org> wrote: > ::: > ::::: Je viens d'essayer mais je n'arrive pas a remplacer > ::::: raise Exception.Create('Coucou'); > ::::: par > ::::: raise rewrite(monfichier); > ::::: > ::::: Apparement c'est pas une class et moi j'ai toujours été nul en > ::::: classe. > ::::: > ::::: > :::: Tu vires le raise......... > ::: > ::: Dans ce cas là, ca ne change rien. J'ai toujours le rapport > ::: d'erreur. > :: > :: Oui, parce que faut pas faire un try..finally, mais un try..except > :: De cette manière, tu "bouffes" l'exception, elle ne quitte pas le > :: bloc except. Bon, c'est crado, mais ça marche. > :: Le mieux c'est d'utiliser un truc du style JclDebug et le dialogue > :: associé qui fait un joli rapport d'erreur et t'empêche pas de > :: continuer. > > Ce qui est plus critique ou tout du moins pas très propre, c'est d'utiliser "rewrite" sans précaution (fichier existe, fichier accessible...). les directives {I+/-} peuvent déjà aider... Après, il faut tester si il y a eu une erreur d'IO. On peut peut-être aussi utiliser: { turn off critical errors } ErrorMode := SetErrorMode(SEM_FailCriticalErrors); try if MONTEST_AVEC_REWRITE then Result := False else Result := True; finally { Restore old error mode } SetErrorMode(ErrorMode); end; |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
On Wed, 31 Oct 2007 14:09:46 +0100, "BigGrizzly"
<biggrizzlyENLEVERCA@zoo-logiqueETCAAUSSI.org> wrote: >Oui, mais là, de toute évidence, on a un souci beaucoup plus grave qui fait >que la gestion d'exception de Delphi est outrepassée... > >Ceci dit, il pourrait être intéressant de tester la ligne Rewrite encadrée >avec {$I-} ... {$I+} (je dis ça de mémoire). > >Et il pourrait être intéressant de savoir pourquoi le Rewrite plante... ça >permettrait d'éventuellement éviter de l'exécuter en vérifiant préalablement >que les conditions sont réunies pour l'exécuter. Le rewrite se fait sur un lecteur CD. Donc forcement ca va pas et c'est fait expres. Je pourrai faire un teste si c'est possible d'ecrire mais je suis tombé sur ca et j'aimerai comprendre comment le resoudre. En tout cas j'attends avec impatience le tuto pour installer delphi sous wine car je ne suis pas sous windows a la maison. -- La vie, c'est comme une boite de chocolat, on sait jamais sur quoi on va tomber... C'est de la connerie, il suffit de retourner la boite pour voir les differente sorte sur la photo. Seulement maintenant t'es dans la merde parce que les chocolats sont par terre.... |
|
|
|
#15 |
|
Messages: n/a
Hébergeur: |
On Wed, 31 Oct 2007 14:12:35 +0100, Faust <miss.me@no.where.invalid>
wrote: >en execution seule ou dans l'EDI? Dans l'IDE, delphi m'affiche une exception mais pas XP. Et en execution seule, XP m'affiche le rapport d'erreur. -- La vie, c'est comme une boite de chocolat, on sait jamais sur quoi on va tomber... C'est de la connerie, il suffit de retourner la boite pour voir les differente sorte sur la photo. Seulement maintenant t'es dans la merde parce que les chocolats sont par terre.... |
|
|
|
#16 |
|
Messages: n/a
Hébergeur: |
Passé simple de l'imparfait a écrit :
> On Wed, 31 Oct 2007 14:12:35 +0100, Faust <miss.me@no.where.invalid> > wrote: > >> en execution seule ou dans l'EDI? > > Dans l'IDE, delphi m'affiche une exception mais pas XP. > Et en execution seule, XP m'affiche le rapport d'erreur. > > J'ai eu ce problème ce matin : une exception que Delphi m'indique, mais qui ne permet pas de passer en débogage... L'exception dans mon cas avait lieu dans le corps du fichier dpr... Je n'ai pas cherché à approfondir, j'ai simplement fait en sorte que l'exception n'ait pas lieu... Pour ton cas, c'est quoi que tu veux savoir au juste ? Si le lecteur est bien un CD ? Il n'y a pas des API qui permettent cela sans passer par un rewrite ? Et en utilisant $I-, ça ne donne rien ? |
|
|
|
#17 |
|
Messages: n/a
Hébergeur: |
ce serait pas simplement qu'on aurait oublié de demander à l'EDI de ne
pas gérer les Exceptions par hasard?? parce que même attrapée dans un try/except qu'on ne peut pas tracer, si l'edi est configuré pour gérer les exceptions alors on est averti qu'il y en a eu une (enfin de mémoire... je me lève là, je suis pas encore très frais) /_BigGrizzly_ a utilisé son clavier pour écrire/ : > Passé simple de l'imparfait a écrit : >> On Wed, 31 Oct 2007 14:12:35 +0100, Faust <miss.me@no.where.invalid> >> wrote: >> >>> en execution seule ou dans l'EDI? >> >> Dans l'IDE, delphi m'affiche une exception mais pas XP. Et en execution >> seule, XP m'affiche le rapport d'erreur. >> > J'ai eu ce problème ce matin : une exception que Delphi m'indique, mais qui > ne permet pas de passer en débogage... L'exception dans mon cas avait lieu > dans le corps du fichier dpr... Je n'ai pas cherché à approfondir, j'ai > simplement fait en sorte que l'exception n'ait pas lieu... > Pour ton cas, c'est quoi que tu veux savoir au juste ? Si le lecteur est bien > un CD ? Il n'y a pas des API qui permettent cela sans passer par un rewrite ? > Et en utilisant $I-, ça ne donne rien ? -- */Teträm/* http://www.tetram.org "On a toujours tort d'essayer d'avoir raison devant des gens qui ont toutes les bonnes raisons de croire qu'ils n'ont pas tort !" - Raymond Devos |
|
|
|
#18 |
|
Messages: n/a
Hébergeur: |
Faust a écrit :
> ce serait pas simplement qu'on aurait oublié de demander à l'EDI de ne > pas gérer les Exceptions par hasard?? > > parce que même attrapée dans un try/except qu'on ne peut pas tracer, si > l'edi est configuré pour gérer les exceptions alors on est averti qu'il > y en a eu une (enfin de mémoire... je me lève là, je suis pas encore > très frais) Je te confirme que mon exception était signalée par l'EDI... mais sans s'arrêter où que ce soit ensuite... |
|
![]() |
| Outils de la discussion | |
|
|