[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