From: Hendrik Tews <tews@tcs.inf.tu-dresden.de>
To: Oliver Bandel <oliver@first.in-berlin.de>, caml-list@inria.fr
Subject: Re: [Caml-list] Catching errors (Unix-Module)
Date: Tue, 16 Apr 2002 15:56:47 +0200 (CEST) [thread overview]
Message-ID: <15548.11679.501664.154023@gargle.gargle.HOWL> (raw)
In-Reply-To: <Pine.LNX.3.95.1020416150158.240A-100000@first.in-berlin.de>
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
prev parent reply other threads:[~2002-04-16 13:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-04-15 20:51 Oliver Bandel
2002-04-15 22:59 ` Shawn Wagner
2002-04-16 13:04 ` Oliver Bandel
2002-04-16 13:22 ` Remi VANICAT
2002-04-16 13:56 ` Hendrik Tews [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=15548.11679.501664.154023@gargle.gargle.HOWL \
--to=tews@tcs.inf.tu-dresden.de \
--cc=caml-list@inria.fr \
--cc=oliver@first.in-berlin.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox