Bonjour,
Je suis nouveau en ASP.NET et je me demander comme faire une gestion propre des erreurs. J'utilise un base de données, donc que faire si la base n'est pas accessible, si la requete n'est pas bonne, etc..
Merci
Bonjour,
Je suis nouveau en ASP.NET et je me demander comme faire une gestion propre des erreurs. J'utilise un base de données, donc que faire si la base n'est pas accessible, si la requete n'est pas bonne, etc..
Merci
je te conseille de mettre ton code dans un try Catch (mais seulement le code sensible, comme l'acces a une base de donnée, suppression de donnée etcc).
exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 try { //ton code } catch(exception ex) { //et la tu récupère l'erreur et tu l'affiche ou tu peux faire tous autre traitement //pour récupérer le message d'erreur string erreur = ex.Message; }
J'ai essayé cela, mais si il n'arrive pas a se connecter à ma base de données, il ne rentre pas dans le catch
En catchant la bonne exception ? étonnant.
Salut,
Comment écris-tu ton bloc try/catch ? Fais voir ton code car comme le dis Kaidan c'est étonnant...
Voila mon code pour me connecter à ma database
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 try { sConnectionString = "Provider=msdaora;Data Source=XE;User Id=hr;Password=hr;"; System.Data.OleDb.OleDbConnection oracleConn = new System.Data.OleDb.OleDbConnection(); oracleConn.ConnectionString = sConnectionString; oracleConn.Open(); return oracleConn; } catch(Exception e) { Response.Write("<script>alert(\'"+e.ToString()+"\');</"+"script>"); return null; }
déjà l'accés à la bd ne pas le mettre dans une page aspx mais dans une dll.
et en fait je pense que quand tu dis que ca ne rentre pas dans le catch c'est que tu ne vois pas à l'ecran le javascript?
et le return à ce niveau ne sert à rien.
Il faudrait mettre dans du code behind ?
C'est en cours. En fait je travaille avec SharePoint, et il est assez chiant niveau sécurité. Pour le moment, ca marche comme ca, mais en parallèle, j'essayer de passer en code behind.
Ensuite, j'ai essayer d'afficher d'autres message dans le catch, mais sans succès. Comme afficher quelquechose sans passer par le javascript ?
Enfin, je suis obligé de retourner quelquechose, je suis dans une fonction.
Merci de passer du temps sur mon cas
Salut
Pour une meilleure lisibilité de ton code je te conseil de dissocier la couche métier (acces aux données, sauvegarde, maj, suppression, ...) de la couche graphique (présentation des données).
Ensuite pour ton bloc try/catch comme tu ve l'utiliser pour la connexion à ta BDD, dans le bloc "try" tu ne mets que :Ce qu'il y a avant peut etre mis avant le "try".
Code : Sélectionner tout - Visualiser dans une fenêtre à part oracleConn.Open();
Pour le "catch" il te suffit d'écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 catch(Exception ex) { MessageBox.show(ex.Message, "Erreur"); }
Un MessageBox en ASP.NETcool
Bon sérieusement, Response.Write("Erreur : " + ex.Message); permet d'écrire l'erreur dans le flux de sortie HTML.
Et il clairement mieux de récupérer une exception plus pertinente que Exception, par exemple dans le cas d'Oracle une OracleException.
OK, je pars la dessus. Merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager