begin process at 2010 02 10 08:39:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

.NET

 > 

Comment obliger le catch d'une exception?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment obliger le catch d'une exception?

mardi 12 avril 2005 à 16:23:14 | Comment obliger le catch d'une exception?

tominfo

Salut,

Je cherche à savoir comment on indique à une méthode qu'elle est suscpetible de jetter une exception et que l'objet qui l'appelle soit obligé de la catcher.
En fait, je cherche l'equivalent Java de :
public void fonction1() throws MonException {
...
}
qui provoque une erreur de compilation si l'objet qui appelle fonction1() ne fait pas un try ... catch dessus.

Merci!

tom
mardi 12 avril 2005 à 16:30:34 | Re : Comment obliger le catch d'une exception?

Crazyht

Administrateur CodeS-SourceS
Désolé pas d'equivalent en .NET de ceci :(

A++

Crazyht
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
mercredi 13 avril 2005 à 02:24:25 | Re : Comment obliger le catch d'une exception?

tominfo

T'es sûr de toi?

Je développe des classes de base utilisées par l'équipe "interface graphique" mais je dois protéger les méthodes que je créer!!! Ils DOIVENT vérifier si la méthode s'est correctement exécutée!
Je ne peux donc pas coder ça proprement???

J'étais déjà pas fan de .NET et je suis pas prêt de le devenir...

tom

mercredi 13 avril 2005 à 08:27:48 | Re : Comment obliger le catch d'une exception?

Warny

Salut,

Tu ne peux faire ça dans aucun langage connu. Même dans le java tu ne peux pas forcer ça.
Je peux parfaitement faire un Throws Exception dans la fonction appelante et elle ne traitera pas l'exception.

Une exception est une information qui te permet de traiter une erreur dans ta pile d'appel. Rien ne peut te forcer à traiter l'erreur sinon l'utilisateur final qui en aura marre que son appli plante. Si tu utilises les exception pour une autre utilisation, il faut complètement revoir ta façon de programmer.

Console.Out.WriteLine("Warny")
Il y a 10 types de personnes
Ceux qui comptent en binaire... et les autres
mercredi 13 avril 2005 à 09:51:24 | Re : Comment obliger le catch d'une exception?

Arthenius

Membre Club
tu peux utiliser les throw exception effectivement dans ton programme...
mais il faudra que les gens utilisant ta dll face des try pour catcher tes throws...

Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."

mercredi 13 avril 2005 à 22:50:15 | Re : Comment obliger le catch d'une exception?

Crazyht

Administrateur CodeS-SourceS
De plus fonctionnelement il n'y a aucune raison qu'un language te force à catcher telle ou telle type d'exception. Et meme si tu forces les utilisateur a catcher une exception metier, je suis certain que quelque part une exception de plus bas niveau peut remonter de ton code jusqu'a l'UI, alors dans cette hypothese vaut il mieux que l'utilisateur catch 3 exceptions metier et par lassitude ne pas mettre de catch général ou vaut-il mieux qu'il mette seulement un catch général qui lui permettra d'avertir l'utilisateur dans tous les cas ?

P.S. : Oui je suis sur de moi, sinon je mets un conditionnel dans ma reponse ou je reponds pas.

A++

Crazyht
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
mercredi 13 avril 2005 à 23:25:48 | Re : Comment obliger le catch d'une exception?

tominfo

Pour répondre à Warny, si tu crée une méthode en java
public void fonction1() throws MonException {
// code
throw new MonException();
}
et que l'oblet client qui appelle fonction1 ne l'encadre pas d'un try ... catch MonException, y'a une erreur de compilation donc le client est obligé de catcher l'exception.
si je crée
public void fonction1() {
// code
throw new MonException();
}
Alors j'ai une méthode qui peut jeter l'exception MonException mais le client n'est pas obliger de la catcher.

Pour répondre à Crazyht, il est vrai que fonctionnellement il n'y a pas de raison qu'un langage te force à catcher des exceptions. Mais ce type de codage force les clients à gérer les erreurs qui peuvent être jetées par les méthodes. Il suffit qu'un client oublie de catcher l'exception pour que tu te retrouve avec un bug qui arrive de temps en temps dans ton programme (et c'est les plus durs à trouver surtout si tu as un grand nombre de classes). Donc tu limites les bugs, tu gagnes en stabilité pour ton programme et tu gagne du temps de débugage.
Java te laisse donc la possibilité de forcer l'objet client à catcher l'erreur ou non en fonction des besoins et du type de méthode que tu souhaite créer, .NET ne te permet donc pas d'imposer ce type de restriction aux développeurs qui utilise tes classes.

Vous pouvez dire ce que vous voulez, moi je trouve ça dommage...

tom

jeudi 14 avril 2005 à 08:33:41 | Re : Comment obliger le catch d'une exception?

Warny

Salut je suis aussi programmeur java.

Si tu fais

void func1() throws MyException {
   thow new MyException();
}

void func2() throws MyException {
   func1();
}

Ca passe, et tu n'a pas traité l'exception. Tu peux même faire un Throws Exception.
Perso, compte tenu des capacités du dotnet en face de Java, du portage indépendant qui en est fait en opensource (mono), de la capacité à utiliser plusieurs langages différents, et surtout de l'orientation métier qui lui a été donné dès sa conception, je n'ai aucun mal à faire mon choix : dotnet.

Console.Out.WriteLine("Warny")
Il y a 10 types de personnes
Ceux qui comptent en binaire... et les autres
jeudi 14 avril 2005 à 14:19:46 | Re : Comment obliger le catch d'une exception?

tominfo

Tu es quand même obliger de catcher l'exception quand tu appelle func1 ou func2!!

Sinon à la compil :

Main.java:34: unreported exception java.lang.Exception; must be caught or declared to be thrown

tom


Cette discussion est classée dans : cherche, objet, catch, exception, obliger


Répondre à ce message

Sujets en rapport avec ce message

Vérification de présence d'un objet com [ par coinki ] Salut,je voudrais savoir comment faire pour verifier la présence d'un objet COM sur le poste de travail.Quand je l'exécute sur un poste qui a pas l'ob Cloner un Objet sans utiliser son Type... [ par Bubuss ] Salut à tous, j'ai un objet et je cherche à faire une copie par valeur de ce dernier (le cloner)Comment puis-je faire étant donné que la classe object Redéfinition de mon exception [ par BackPack ] Bonjour à tous,J'ai une petite question. Je sais pas si c'est parce que j'ai pasles yeux en face des trous aujourd'hui mais je n'arrive pas àfaire un c sharp [ par verbeyst ] Le bout de code suivant m'affiche un message erreur que je ne comprends pasle message est "value cannot be null    parameter name : bytes"veuillez m'a Utiliser méthode d'un objet dans l'objet [ par Leucistic ] Bonjour, Je suis débutant en langage objet, et pour m'entrainer a coder, je suis en train de créer un objet.Une des methodes de cet objet necessiterai [QUESTION] la réference d'objet n'ai pas définie a une instance d'un objet - ? [ par Theka ] Bonjour,Voila j'essaye de me lancer dans le C# et j'obtiens le message d'erreur :" la réference d'objet n'ai pas définie a une instance d'un objet "lo Récupérer le nom de la/des carte(s) graphique [ par snyx999 ] Bonjour à tous,Voilà un moment que je cherche sans succès un moyen de récupérer le nom de la/des carte(s) graphique dans la machine.Mon code est en C# Comment écrire sur une textbox de plusieurs classes? [ par therainbow3 ] Bonsoir,J'aimerais que lorsque je rencontre une exception, j'écrive un string dans une textbox. Par exemple si une erreur survient dans la classe conn AutoCAD: Problème sur oDoc.Utility.GetEntity [ par Difre1732 ] Bonjour, Quand je veux récupérer l'objet entité, il me retoure que mon objet est un objet COM mais de valeur NULL, à côté de ça, il me retourne le ta


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales