Identifiant:
Mot de passe:
Accueil
Devblogs
Voir tous les devblogs
Obtenir un devblog
Fiches Homebrews
Chat (IRC)
NoPaste
Lexique
Wikis
NDS/GBA
PSP
Wii
Forum
Accéder au forum
Messages non lus
Réponses non lues
Au secours !!!
Options
Rechercher
Se Connecter
Inscrivez-vous
Développement Amateur Francophone
|
Divers Developpement
|
Codes et Optimisations
|
Vous et les exceptions
Pages: [
1
]
2
Bas de page
Imprimer
Auteur
Fil de discussion: Vous et les exceptions (Lu 1435 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Sheeft
Petit slip
Vraiment petit
Messages: 923
sexe : oui (ndPyroh : Ouais ouais...)
Vous et les exceptions
« 13 Février 2012, 15:26:26 »
Salut à tous,
J'ouvre encore un petit sujet pour discuter
Cette fois-ci j'avais envie de parler des exceptions.
L'idée me vient parce que l'autre jour en cours d'info, le prof nous a dit qu'en pratique, pour un algorithme de recherche on procèderait avec l'aide des exceptions et ça m'avait parût bizarre.
Je comprends l'idée, je vois pourquoi ça marche, mais c'est vrai que j'avais tendance à croire qu'on les utilisait plutôt pour gérer des erreurs… exceptionnelles
Comme c'est le cas des exceptions de base.
D'ailleurs la syntaxe le sous-entend aussi : try… catch (ou try with avec Caml light dans mon cas, et d'ailleurs c'est un peu bizarre mais bon).
Pour comprendre ce que veux dire, et si ça vous intéresse, voici l'algo de recherche dans une liste avec Caml Light qu'on a vu en cours :
Code: (ocaml)
exception trouve of int;;
let place x t =
try for i=0 to (vect_length t -1) do
if t.(i) = x then raise (trouve i);
done;
with trouve k -> k;;
Vous, vous utilisez les exception ? Si oui dans quels cas ?
Journalisée
Pas si petit…
t4ils
Branleur
Elite Member
Messages: 961
Re : Vous et les exceptions
«
Réponse #1 :
13 Février 2012, 16:11:53 »
Il m'est arrivé d'utiliser des exceptions crades mais ça reste rare.
J'appelle exceptions crades les endroits où un simple test permet d'éviter l'exception (parseInt(), division par 0 ...)
Sinon je suis plutôt Pokemon exception :
Code:
try {
[...]
}catch(Exception e) { // Gotta catch 'em all !
[...]
}
Je n'utilise pas les exceptions pour m'aider dans mon code (comme ton exemple en Caml), mais plutôt pour vraiment faire un catch d'une erreur que je n'avais pas prévu, et la corriger pour qu'elle n'apparaisse plus ensuite
Journalisée
Le codage amateur ? Parce que je le veux bien.
Reyhn
Jr. Member
Messages: 94
Re : Vous et les exceptions
«
Réponse #2 :
13 Février 2012, 16:21:07 »
A mon grand désarroi les profs d'info sont plutôt pas terrib' pour expliquer les exceptions et leur utilité.
De mon vécu (je suis peut-être une exception
) on les voit "parce qu'il le faut" mais on apprend pas vraiment à quoi ça sert
en vrai
ni comment bien les utiliser. J'ai beau les avoir vues en Java et C++, ça reste très flou ...
Journalisée
Zipler
Full Member
Messages: 106
Re : Vous et les exceptions
«
Réponse #3 :
13 Février 2012, 16:32:09 »
En caml c'est plutôt par commodité que l'on fait ça vu qu'il n'y a pas notamment d'instruction "break" (ni continue d'ailleurs).
Journalisée
Valryon
Sr. Member
Messages: 331
The World ends with you !
Re : Re : Vous et les exceptions
«
Réponse #4 :
13 Février 2012, 16:47:39 »
Citation de: Zipler le
Aujourd'hui
à 16:32:09
En caml c'est plutôt par commodité que l'on fait ça vu qu'il n'y a pas notamment d'instruction "break" (ni continue d'ailleurs).
A mon avis la réponse est là, même si c'est possible je n'ai jamais vu en Java ou C# une exception utilisée pour sortir proprement d'une boucle.
Elles sont globalement plus réservées aux erreurs ou aux dysfonctionnements : time out, division par 0, référence null, etc.
Même si d'un point de vue algorithmique ça se tient, le même algo de tri en # ou Java sera considérablement ralenti par les try/catch et la gestion d’exception, surtout face à un break/continue.
Journalisée
Développeur professionnel et passionné de jeu vidéo, auteur de The Great Paper Adventure (PC/X360) :
->
http://www.thegreatpaperadventure.com
Sheeft
Petit slip
Vraiment petit
Messages: 923
sexe : oui (ndPyroh : Ouais ouais...)
Re : Vous et les exceptions
«
Réponse #5 :
13 Février 2012, 19:52:13 »
Ouais je pense que tu as raison, c'est un peu dommage cette absence de break parce que c'est bien pratique. Pareil, il n'y a pas de return et pour moi, ça manque.
Journalisée
Pas si petit…
EvilTroopa
Administrateur
Messages: 648
1010011010 the Number of the Beast
Re : Vous et les exceptions
«
Réponse #6 :
13 Février 2012, 20:26:05 »
Après avoir un peu expérimenté les échanges réseau y'a quelques jours (en java), les exceptions c'était le seul moyen que j'avais pour sortir d'un thread qui écoutait sur un port...
J'ai un peu regardé dans les différentes démos que j'ai pu trouver sur le net, les exceptions sont systématiquement utilisées, à plus ou moins bon escient. Des fois, c'est juste pour sortir et afficher une erreur dans la console. Des fois il y avait une gestion un peu plus poussée des éléments du thread.
Perso, en java, je les utilise assez souvent, mais comme t4ils, surtout pour essayer de pallier à des bugs auxquels j'aurais pas pensé.
Journalisée
A mushroom a day, keeps the koopas away.
Zipler
Full Member
Messages: 106
Re : Vous et les exceptions
«
Réponse #7 :
15 Février 2012, 18:05:38 »
Sinon, pour ce qui est du C/C++, j'ai l'habitude suivante: en C, je n'utilise pas les exceptions mais des codes d'erreur et remplissage de stderr (ou pas); en c++ je ne les utilise que dans les constructeurs pour faire du RAII, pour le reste, je laisse planter, et la version debug m'indique pourquoi grâce aux asserts que je mets un peu partout.
Journalisée
t4ils
Branleur
Elite Member
Messages: 961
Re : Vous et les exceptions
«
Réponse #8 :
16 Février 2012, 01:46:54 »
Zipler, laisser planté une appli c'est peut être no problemo en solo, mais quand tu développes l'application à destination de collaborateurs de ton entreprise, il est très mal vu de voir des messages de plantage avec stack trace
(c'est un peu violent lol)
Les exceptions permettent donc aussi au maximum de ne pas déranger l'utilisateur si dès problèmes surviennent, et de présenter un message plus user friendly tout en loguant et avertissant le codeur du problème rencontré
Journalisée
Le codage amateur ? Parce que je le veux bien.
Zipler
Full Member
Messages: 106
Re : Vous et les exceptions
«
Réponse #9 :
17 Février 2012, 07:45:00 »
Le truc c'est que je fais beaucoup de vérifications dans le code (tous les paramètres de fonctions, variables intermediaires, verification de chaque alloc, utilisation d'un log, passage dans valgrind). Quand je dis que je n'utilse pas les exceptions, c'est juste que dans le cas où une survient et qu'elle n'est pas rattrapée immédiatement, c'est que c'est très grave, donc un plantage est peut-être la meilleure solution
. C'est vrai que c'est pas l'idéal pour l'entreprise, mais pour l'instant ça me suffit pour mon utilisation individuelle
.
Journalisée
Campanile
Elite Member
Messages: 925
sic
Re : Re : Vous et les exceptions
«
Réponse #10 :
18 Février 2012, 16:15:03 »
Citation de: t4ils le 16 Février 2012, 01:46:54
Zipler, laisser planté une appli c'est peut être no problemo en solo, mais quand tu développes l'application à destination de collaborateurs de ton entreprise, il est très mal vu de voir des messages de plantage avec stack trace
(c'est un peu violent lol)
Les exceptions permettent donc aussi au maximum de ne pas déranger l'utilisateur si dès problèmes surviennent, et de présenter un message plus user friendly tout en loguant et avertissant le codeur du problème rencontré
Alors ça ça dépend de l'entreprise
Allez hop petit hs :
Chez moi on balance les (très très fréquentes) stacks trace aux utilisateurs (plusieurs milliers sur la France)
Alors oui, c'est des cochons les développeurs, mais y'a pire, y'a les chefs de projet, quand on leur fait remarquer que c'est pas sympa pro le pauvre utilisateur (je suis côté intégration), c'est qu'ils remplacent la pile par un "Problème technique - Contactez votre administrateur" sans la moindre info sur la cause de l'anomalie. Ou pire de pire, un try avec un catch tout vide
Je pense que je suis dans la boîte ou on se fout des utilisateur et ou on programme le plus mal d'Europe, et j'en suis pas vraiment fier
Journalisée
L'expérience, c'est ni plus ni moins qu'une petite quantité d'information qui aurait été fort utile quelques secondes avant qu'on l'apprenne...
Valryon
Sr. Member
Messages: 331
The World ends with you !
Re : Re : Re : Vous et les exceptions
«
Réponse #11 :
18 Février 2012, 16:42:58 »
Citation de: Campanile le
Aujourd'hui
à 16:15:03
Je pense que je suis dans la boîte ou on se fout des utilisateur et ou on programme le plus mal d'Europe, et j'en suis pas vraiment fier
Tu es en SSII quoi
Même expérience chez un des géants du genre, on laissait les stacktraces en intégration pour pouvoir plus facilement débugguer, mais seulement pour les grosses erreurs imprévues.
Les utilisateurs n'étaient pas super contents du message affiché, mais une capture d'écran et hop on pouvait résoudre plus facilement le problème. Du coup ils étaient un peu contents quand même.
Journalisée
Développeur professionnel et passionné de jeu vidéo, auteur de The Great Paper Adventure (PC/X360) :
->
http://www.thegreatpaperadventure.com
t4ils
Branleur
Elite Member
Messages: 961
Re : Vous et les exceptions
«
Réponse #12 :
18 Février 2012, 18:36:40 »
bah euh les gars, je comprends pas tout à vos méthodes là
Moi j'affiche bien erreur technique à l'utilisateur, mais la stack trace reste dans le code quoi
J'affiche à l'utilisateur le message de l'exception à rapporter à la hotline de l'entreprise, mais pas plus
La stack trace est dans un log, qu'on consultera par la suite.
Vous loguez rien ?
Journalisée
Le codage amateur ? Parce que je le veux bien.
EvilTroopa
Administrateur
Messages: 648
1010011010 the Number of the Beast
Re : Vous et les exceptions
«
Réponse #13 :
18 Février 2012, 18:44:04 »
Chez nous, on n'affiche pas d'erreurs en prod et on log tout dans des fichiers.
Les exceptions et autres erreurs sont aussi envoyées par email sur la boite mail du service informatique.
Chaque page est entourée par un gros try/catch pour être sûr qu'aucune erreur ne ressorte dans le html. C'est un peu bourrin, mais ça marche bien
Journalisée
A mushroom a day, keeps the koopas away.
PypeBros
Hero Member
Messages: 707
Posez-vous les bonnes questions
Re : Vous et les exceptions
«
Réponse #14 :
24 Février 2012, 09:41:12 »
Citation de: Sheeft le 13 Février 2012, 15:26:26
Cette fois-ci j'avais envie de parler des exceptions.
L'idée me vient parce que l'autre jour en cours d'info, le prof nous a dit qu'en pratique, pour un algorithme de recherche on procèderait avec l'aide des exceptions et ça m'avait parût bizarre.
Pour info, les exceptions en OCaml sont ~300x plus rapides qu'en C++ (selon un collègue qui fait de l'OCaml quotidiennement). C'est quelque-chose à prendre en compte, évidemment.
Journalisée
j'ai besoin de vous 2 minutes pour mes recherches sur le SPaM
Pages: [
1
]
2
Haut de page
Imprimer
Aller à:
Merci de choisir une destination:
-----------------------------
Compos
-----------------------------
=> Compo Débile Dev-Fr !
-----------------------------
Les News
-----------------------------
=> News
=> Vos News
-----------------------------
Général
-----------------------------
=> Discussion générale
=> Demande de blogs
=> Evolution du site
-----------------------------
Articles
-----------------------------
=> Interviews
=> Tests
===> Vos Tests
=> Démos Techniques
=> Pimp My Code
=> Tutoriaux
=> Le HS total du dimanche
-----------------------------
Divers Developpement
-----------------------------
=> Idées de Projets
=> Codes et Optimisations
=> Emulation
=> Graphismes
=> Game Design / Level Design
=> Musiques
=> Autre
-----------------------------
Dev-FR Coding Compo 2007
-----------------------------
=> International Section
===> Apps
===> Games
=> Section Francophone
===> Applications
===> Jeux
-----------------------------
Nintendo DS/GBA
-----------------------------
=> Projets
=> Aide au développement
=> Résolu via IRC
-----------------------------
PSP
-----------------------------
=> Projets
=> Aide au développement
-----------------------------
iPhone / iTouch
-----------------------------
=> Projets
=> Aide au développement
=> Tutoriels
-----------------------------
Android
-----------------------------
=> Projets
=> Aide au développement
=> Tutoriels
-----------------------------
Dingoo
-----------------------------
=> Projets
=> Aide au développement
-----------------------------
Wii/NGC
-----------------------------
=> Projets
=> Aide au développement
-----------------------------
PS3/Linux
-----------------------------
=> Projets
=> Divers
-----------------------------
Xbox 360
-----------------------------
=> Projets
=> Aide au développement
=> Tutoriels
-----------------------------
Windows/Mac/Linux
-----------------------------
=> Projets
=> Aide au developpement
-----------------------------
PocketPC
-----------------------------
=> Projets
-----------------------------
Matériel
-----------------------------
=> Consoles
=> Ordinateurs
=> UltraPortables