| Anonymous | Login | Signup for a new account | 2013-05-20 19:35 CEST | ![]() |
| Main | My View | View Issues | Change Log | Roadmap |
| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | |||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | |||
| 0000023 | OCaml | OCaml general | public | 2000-01-13 19:17 | 2001-03-15 12:27 | |||
| Reporter | administrator | |||||||
| Assigned To | ||||||||
| Priority | normal | Severity | minor | Reproducibility | always | |||
| Status | closed | Resolution | no change required | |||||
| Platform | OS | OS Version | ||||||
| Product Version | ||||||||
| Target Version | Fixed in Version | |||||||
| Summary | 0000023: PRIVATE: exceptions | |||||||
| Description | Full_Name: Bruno MORVAN Version: Caml light 0.74 OS: W 95 Submission from: proxy.nordnet.fr (194.206.126.190) Une sesssion entiere. > Caml Light version 0.74 #try 1/0 with foo->1 | bar -> 0;; Entrée interactive: >try 1/0 with foo->1 | bar -> 0;; > ^^^ Attention: ce cas de filtrage est inutile. - : int = 1 # me laisse perplexe. les exceptions ne semble même pas testées. | |||||||
| Tags | No tags attached. | |||||||
| Attached Files | ||||||||
Notes |
|
|
(0002062) administrator (administrator) 2000-01-23 15:09 |
> #try 1/0 with foo->1 | bar -> 0;; > Entrée interactive: >>try 1/0 with foo->1 | bar -> 0;; >> ^^^ > Attention: ce cas de filtrage est inutile. > - : int = 1 > # Dans votre code, les identificateurs "foo" et "bar" sont des variables qui sont liees dans les patterns ou elles apparaissent. Vous auriez aussi bien pu ecrire: try 1/0 with x -> 1 | y -> 0;; ou meme: try 1/0 with _ -> 1 | y -> 0;; D'ailleurs le compilateur vous signale que le deuxieme cas n'est jamais utilise puisque toutes les exceptions sont rattrappees par le premier. Vous vouliez sans doute ecrire try 1/0 with Foo -> 1 | Bar -> 0;; et dans ce cas le compilateur proteste que Foo et Bar ne sont pas des exceptions connues. -- Damien |
|
(0002063) administrator (administrator) 2000-01-23 21:11 |
Damien Doligez a écrit : > > #try 1/0 with foo->1 | bar -> 0;; > > Entrée interactive: > >>try 1/0 with foo->1 | bar -> 0;; > >> ^^^ > > Attention: ce cas de filtrage est inutile. > > - : int = 1 > > # > > Dans votre code, les identificateurs "foo" et "bar" sont des variables qui > sont liees dans les patterns ou elles apparaissent. Vous auriez aussi bien > pu ecrire: try 1/0 with x -> 1 | y -> 0;; > ou meme: try 1/0 with _ -> 1 | y -> 0;; > > D'ailleurs le compilateur vous signale que le deuxieme cas n'est jamais > utilise puisque toutes les exceptions sont rattrappees par le premier. > > Vous vouliez sans doute ecrire try 1/0 with Foo -> 1 | Bar -> 0;; > et dans ce cas le compilateur proteste que Foo et Bar ne sont pas des > exceptions connues. > > -- Damien Merci beaucoup. En fait j'ai envoyé ce bug trop vite, en réflechissant un peu j'ai vu mon erreur. Pierre Weiss m'a répondu en parallèle. En conclusion : Cette erreur m'a permis de comprendre quelque chose sur lequel la documentation Caml est trop muette: le rôle des Majuscules. Puisque Caml autorise la déclaration d' exceptions en minuscule, j'ai pris cette (surement mauvaise) habitude, qui a conduit à cette bourde. Bruno MORVAN Lycee H Wallon VALENCIENNES. |
Issue History |
|||
| Date Modified | Username | Field | Change |
| 2005-11-18 10:13 | administrator | New Issue | |
| Copyright © 2000 - 2011 MantisBT Group |