Gestion des erreurs - Try except [Résolu]

jderf 192 Messages postés mercredi 29 décembre 2004Date d'inscription 2 octobre 2014 Dernière intervention - 18 août 2010 à 12:18 - Dernière réponse : jderf 192 Messages postés mercredi 29 décembre 2004Date d'inscription 2 octobre 2014 Dernière intervention
- 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 

Votre réponse

5 réponses

Cirec 4221 Messages postés vendredi 23 juillet 2004Date d'inscription 11 mai 2018 Dernière intervention - 18 août 2010 à 13:08
+3
Utile
Salut,

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

[hr]@+Cirec
[hr]
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Cirec
jderf 192 Messages postés mercredi 29 décembre 2004Date d'inscription 2 octobre 2014 Dernière intervention - 18 août 2010 à 12:44
0
Utile
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
jderf 192 Messages postés mercredi 29 décembre 2004Date d'inscription 2 octobre 2014 Dernière intervention - 18 août 2010 à 13:59
0
Utile
Slt Cirec,

Merci pour la confirmation.
Commenter la réponse de jderf
Cirec 4221 Messages postés vendredi 23 juillet 2004Date d'inscription 11 mai 2018 Dernière intervention - 18 août 2010 à 14:10
0
Utile
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
jderf 192 Messages postés mercredi 29 décembre 2004Date d'inscription 2 octobre 2014 Dernière intervention - 18 août 2010 à 16:13
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.