Comment traiter les exceptions (avec TRY et CATCH) ????

Comment traiter les exceptions (avec TRY et CATCH) ???? - Programmation

Marsh Posté le 01-02-2002 à 20:11:15    

Salut,
j'ai un entretien pour un job lundi et on me demande de savoir ce que c'est une exception ??????,??????? (Visual C++)
On m'a parler de Try et Catch......
 
HELP HELP HELP

Reply

Marsh Posté le 01-02-2002 à 20:11:15   

Reply

Marsh Posté le 01-02-2002 à 22:04:27    

Exemple, (language inexistant :) )
try
{
File.open("c:\fichier.txt" );
}
catch (FileopenException e)
{
print("impossible d'ouvrir le fichier c:\fichier.txt" );
}
 
en gros, si le file.open se passe bien, l'interpreteur ne passera pas par le block catch, si ca se passe mal( fichier non présent, ou locké) ca passera par le block catch.
et tu fais ce que tu veux dedans le block catch.
 
y'a des sites qui expliquent ca, recherhe..

Reply

Marsh Posté le 01-02-2002 à 22:45:51    

un entretien pour un job dans lequel on te demande de savoir ce qu'est une exception en C++ :??:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 01-02-2002 à 22:54:29    

benou a écrit a écrit :

un entretien pour un job dans lequel on te demande de savoir ce qu'est une exception en C++ :??:  




 
 :??: itou


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 01-02-2002 à 23:49:00    

C'est en gros ce que son commercial a dû retenir des entretiens qu'il a eu avec de précédents candidats. "Tu vas voir, le client risque de te poser des petites questions techniques sur le c++.  Par exemple sur les exceptions"

Reply

Marsh Posté le 03-02-2002 à 00:40:25    

C'est exactement ça !!!!
D'ailleurs, je trouve ça complétement débile comme question ;-)
Kel est l'interet de savoir ça !!!!
Tu peux etre bon et ne pas savoir ça...
 
En tout cas merci beaucoup pour l'explication

Reply

Marsh Posté le 03-02-2002 à 22:39:28    

cashmere a écrit a écrit :

 
Tu peux etre bon et ne pas savoir ça...




 
que ce soit con comme question je suis parfaitement d'accord, mais être bon en programation sans savoir ce qu'est une exception ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 04-02-2002 à 09:12:06    

cashmere a écrit a écrit :

Tu peux etre bon et ne pas savoir ça...




 
la programmation défensive tu connais?  :sarcastic:


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 04-02-2002 à 09:15:57    

Perso je suis pas un fan des exceptions..
 
Que ça soit un moyen comme un autre de rendre un message d´erreur soit, mais le pb c que ça aide à programmer comme un porc (du genre j´intercepte l´exception le plus loin possible de ce qui l´a lancé comme ça je dois pas me faire chier avec la gestion d´erreur).. :)


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
Reply

Marsh Posté le 04-02-2002 à 09:20:49    

c'est parce que tu utilises mal le mécanisme que tu as des problemes comme ca. L'exception doit etre catchée par le niveau qui est capable de résoudre le problème. Si tu remontes le plus haut possible, il n'y a plus de niveau (stack) dans ton code et donc c'est normal que ton niveau supérieur ne comprenne rien à ce qui se fait en interne.


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 04-02-2002 à 09:20:49   

Reply

Marsh Posté le 04-02-2002 à 10:15:02    

J´ai pas dit que je l´utilisais mal!!
 
Je reproche justement que ça permet à pas mals de programmer comme des porcs!! ;)

Reply

Marsh Posté le 04-02-2002 à 10:27:13    

H4dd3R a écrit a écrit :

J´ai pas dit que je l´utilisais mal!!
 
Je reproche justement que ça permet à pas mals de programmer comme des porcs!! ;)  




 
Avec des raisonnements comme ça, il ne faut pas utiliser le C++ ... :sarcastic:
 
Les exceptions : c'est bien plus propre que de faire des if/switch à chaque retour de méthodes en mettant des codes retour obscurs à documenter.


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 04-02-2002 à 13:44:50    

Moi j'utilise très très rarement les exceptions
je voudrais savoir à quelles occasions vous les utilisez ?
et quand vous en créer (et surtout qd es qu'il faudrait les créer pour faire propre et cohérent) ?
 
en général je les catch quand j'appelle des fichiers, des mallocs, des trucs du genre.
donc c'est pas vraiment pas souvent
et vous ?

Reply

Marsh Posté le 04-02-2002 à 23:01:10    

En Java, souvent, plein partout, justement, pour blinder, pour avoir des logs d'erreurs ou de déroulement du programme pertinents (normalement, au moment où tu la catches, tu catche un type précis d'exception, qui correspond à un problème précis)....c clair que ça fait des fois des  
try {
} catch (machin m) {
} catch (machin m2) {
...
(sans oublier le Finally, rhaaa!!:D)  
mauis au moins quand ça plante, tu sais pourquoi, et où (oui, pasqu'en Java, si tu logges la trace de l'exception, ça écrit la pile d'eppel dans les logs, très très pratique, mais en C++, je sais pas si ça existe)
 
donc, pour faire bref, j'en utilise plein?

Reply

Marsh Posté le 04-02-2002 à 23:16:58    

quand utiliser une exception ??? des que le comportement d'une méthode n'est pas un comportement normal et qu'elle n'arrivera pas à faire le traitement pour lequel elle a été appelée.
 
Quand est-ce qu'il faut en créer ?
moi j'en créer une de base pour chacun de mes projets, et ensuite j'en créé d'autre qui dérive de celle la.
 
Je n'ai pas encore trouvé de règles précises pour dire quand il faut créer de nouvelles exceptions... Tu peux déja en créée une lorsqu'elle peut apporter plus de renseignements qu'un simple message d'erreur : Il peut arriver que la couche du dessous ait besoin d'informations pour "résoudre" l'exception, tu peux stocker ces informations dans l'exception. Ensuite, c'est une questionde clarté, et ca permet de pouvoir filtrer les différents cas d'exceptions avec les catch.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-02-2002 à 00:11:28    

benou a écrit a écrit :

quand utiliser une exception ??? des que le comportement d'une méthode n'est pas un comportement normal et qu'elle n'arrivera pas à faire le traitement pour lequel elle a été appelée.
 
Quand est-ce qu'il faut en créer ?
moi j'en créer une de base pour chacun de mes projets, et ensuite j'en créé d'autre qui dérive de celle la.
 
Je n'ai pas encore trouvé de règles précises pour dire quand il faut créer de nouvelles exceptions... Tu peux déja en créée une lorsqu'elle peut apporter plus de renseignements qu'un simple message d'erreur : Il peut arriver que la couche du dessous ait besoin d'informations pour "résoudre" l'exception, tu peux stocker ces informations dans l'exception. Ensuite, c'est une questionde clarté, et ca permet de pouvoir filtrer les différents cas d'exceptions avec les catch.  




benou, entierement d'accord.
Au passage, il existe dans la STL une classe : exception qui peut servir de classe mere aux exceptions d'un projet un peu comme tu le fais à la main.
Le seul defaut du c++ par rapport au java c'est la permissivité quant aux traite exceptions...

Reply

Marsh Posté le 06-02-2002 à 14:06:41    

merci pour vos réponses (ca c'est du squat de topic bien en règle ;)
je savais pas que c'était autant utiliser.
je vais me renseigner d'avantage

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed