Browse thread
[Caml-list] Catching errors (Unix-Module)
-
Oliver Bandel
-
Shawn Wagner
-
Oliver Bandel
- Remi VANICAT
- Hendrik Tews
-
Oliver Bandel
-
Shawn Wagner
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Hendrik Tews <tews@t...> |
| Subject: | Re: [Caml-list] Catching errors (Unix-Module) |
Oliver Bandel writes:
Date: Tue, 16 Apr 2002 15:04:34 +0200 (MET DST)
Subject: Re: [Caml-list] Catching errors (Unix-Module)
OK, let's try it:
[...]
This expression has type unit but is here used with type Unix.stats
Or is there a general problem with that code?
Well, the catch has to return something compatible with
Unix.stat. So you can try
1. use optional values
try
Some (Unix.stat "/foo/bar")
with
| Unix.Unix_error (code, func, file) ->
Printf.fprintf stderr "Couldn't %s '%s': %s!\n"
func file (Unix.error_message code);
None
;;
2. reraise the exception
try
Unix.stat "/foo/bar"
with
| Unix.Unix_error (code, func, file) as exec ->
Printf.fprintf stderr "Couldn't %s '%s': %s!\n"
func file (Unix.error_message code);
raise exec
;;
3. raise another exception
exception MyUnixException;;
try
Unix.stat "/foo/bar"
with
| Unix.Unix_error (code, func, file) as exec ->
Printf.fprintf stderr "Couldn't %s '%s': %s!\n"
func file (Unix.error_message code);
raise MyUnixException
;;
In case you get an error like
Reference to undefined global `Unix'
you have to built a toplevel containing the unix module:
/usr/local/ocaml-3.01/bin/ocamlmktop -o mytop unix.cma
Bye,
Hendrik
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners