interompre l'instanciation d'une classe

Signaler
Messages postés
127
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
29 mai 2014
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Bonjour!  J'aimerais savoir si il existe un moyen pour interompre l'instanciation d'une classe. Pour qu'elle sois égale a nothing si uen erreur survient.  Voici ce que je tente de faire

dim myUser as new User("Gaston")

if not myUser is nothing then..........

Le probleme c'est que dans ma classe user j'affecte des varibles privés avec le resultat d'une requete SQL.  Si ca plante mon objet est a moité rempli avec quelque propriété mais il en manque.... donc j'aimerais tout simplement que mon objet = nothing.

Merci

Nicolas!

1 réponse

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,

non ce n'est pas possible, la seule solution est de remonté l'exception ou alors de gérer ce cas.

De plus j'arrive pas à me décider si faire une requête SQL dans le constructeur d'une classe est bien propre. Pourquoi ne pas passer par une autre cache (DAO ou autre) qui te retourne un User à partir du nom ? au moins là tu pourrais retourner null. Mais tu ne dois pas reposer ton programme sur des comportements exceptionels, ton programme n'est pas censé planté. Donc je dirais de remonter l'exception est une bonne solution plutot que de retourner null (Exception qui sera évidemment attrapé par la couche présentation (ça tombe bien ASP.net le fait tout seul (oui je fais jamais de try dans mon code, mais chut ;))))

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant