Accueil > Forum > > > > Comment obliger le catch d'une exception?
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?
|
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
|
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
|
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
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|