[linux-l] RS-232 oder USB lesen mit (Schauder...) Java Os-unabhaengig
Jan-Benedict Glaw
jbglaw at lug-owl.de
Do Sep 29 17:39:24 CEST 2005
On Thu, 2005-09-29 17:13:16 +0200, Oliver Bandel <oliver at first.in-berlin.de> wrote:
> Was aber, wenn zur Laufzeit ein Fall auftritt, der nicht
> abgefragt wird in dem Code?
> (weder explizit, noch mit Wildcard-match?!)
...dann hat der Programmierer enums nicht verstanden.
> ========================================================
> # type my_type = Blah | Blih | Blubb | Untested_case;;
> type my_type = Blah | Blih | Blubb | Untested_case
> # let say_something x = match x with
> Blah -> "Blah"
> |Blih -> "Dies ist der Blih"
> |Blubb -> "Blubber-Hannes";;
> Warning: this pattern-matching is not exhaustive.
> Here is an example of a value that is not matched:
> Untested_case
> val say_something : my_type -> string = <fun>
> # say_something Blih;;
> - : string = "Dies ist der Blih"
> # say_something Untested_case;;
> Exception: Match_failure ("", 1, 22).
> #
> ========================================================
>
> Welche Exception wirft C bzw. gcc in dem Falle?
Keine, ist nicht seine Aufgabe. enums werden zur compile time
ausgewertet, nicht hinterher (-> das ist viel zu langsam :-)
> Wenn "default" vergessen wurde, fliegt Dir der C-Code
> möglicherweise um die Ohren!
Bei enums sollte man keinen default benutzen. Für offene Variablen,
denen jeglicher Mist zugewiesen sein könnte, ist das schon eher
sinnvoll.
MfG, JBG
--
Jan-Benedict Glaw jbglaw at lug-owl.de . +49-172-7608481 _ O _
"Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg _ _ O
für einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : signature.asc
Dateityp : application/pgp-signature
Dateigröße : 189 bytes
Beschreibung: Digital signature
URL : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20050929/ca0b1417/attachment.sig>
Mehr Informationen über die Mailingliste linux-l