Gestion des erreurs - Try except [Résolu]

Messages postés
192
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
2 octobre 2014
- - Dernière réponse : jderf
Messages postés
192
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
2 octobre 2014
- 18 août 2010 à 16:13
Bonjour,

Dans l'initialisation de mon appli, je me connecte à une base. En cas d'erreur, je souhaite afficher le message d'erreur remonté par le raise de Connection_Base, puis fermer l'application.

J'ai fait ceci mais ça ne fonctionne pas

try
Connection_Base;
except
on E : Exception do showmessage(E.message);
MonApplication.Close;
end;

Comment faire ??

Merci pour votre aide.
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
3810
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
9 décembre 2019
34
3
Merci
Salut,

oui ici il n'y a que Application.Terminate qui fonctionne

[hr]@+Cirec
[hr]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Cirec
Messages postés
192
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
2 octobre 2014
1
0
Merci
Zut, j'avais oublié le begin end !!

try
Connection_Base;
except
on E : Exception do
begin
showmessage(E.message);
MonApplication.Close;
end;
end;

Par contre ce bloc est situé dans MonApplication.FormCreate et l'appli ne ce ferme pas ?

Il faut que j'utlise application.terminate puisque dans le projet y'a Application.Run après le Application.CreateForm, c'est cela ?
Commenter la réponse de jderf
Messages postés
192
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
2 octobre 2014
1
0
Merci
Slt Cirec,

Merci pour la confirmation.
Commenter la réponse de jderf
Messages postés
3810
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
9 décembre 2019
34
0
Merci
Pardon

grosse bétise:
[hr][b]uses

  /bWindows, // for IDOK
  Dialogs, // for MessageDlg
  Forms,
  Main in 'Main.pas' {MainFiche};

{$R *.res}

[b]begin
  /bApplication.Initialize;
  Application.CreateForm(TMainFiche, MainFiche);
  if MessageDlg('continuer ?', mtConfirmation, mbOKCancel, 0) <> IDOK [b]then
    /bMainFiche.Close;
  Application.Run;
end.
[hr]
fonctionne très bien


[hr]@+Cirec
[hr]
Commenter la réponse de Cirec
Messages postés
192
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
2 octobre 2014
1
0
Merci
Tiens ça me donne une idée.
Je faisais la verif de la connexion avec la BD dans le from.create de la form principale mais dans le dpr c'est mieux !

// Création et affichage du splashScreen
FrmSplashScreen:=TFrmSplashScreen.Create(Application);
FrmSplashScreen.Show;
FrmSplashScreen.Update;

// ---- Vérification de la conformité de la licence ----
if not(ValideLicence('Licence.txt',4,20,50,85,110)) then
begin
// ---- Connexion à la base de données ----
try
Connection_Base;
except
on E : Exception do
begin
showmessage(E.message);
FrmSplashScreen.Hide;
FrmSplashScreen.Close;
FrmSplashScreen.Free;
end;
end;
// Licence et base de données OK --> pousuite du lancement

// Init de la form principale
Application.Initialize;
Application.CreateForm(TForm1, Form1);

// Pause et destruction du splashscreen
Sleep(1000);
FrmSplashScreen.Hide;
FrmSplashScreen.Close;
FrmSplashScreen.Free;

// Lancement du reste de l'appli
Application.Run;
end
else
begin
// PAS DE LICENCE - Fermeture sans message
Sleep(300);
FrmSplashScreen.Hide;
FrmSplashScreen.Close;
FrmSplashScreen.Free;
end;
Commenter la réponse de jderf