Version française
Home     About     Download     Resources     Contact us    
Browse thread
line number in exception history?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Eijiro Sumii <eijiro.sumii@g...>
Subject: line number in exception history?
Hi,

(Sorry if this is a FAQ - I searched a little and couldn't find the answer.)

A student in Tokyo (_not_ CS major!) reported a "problem" (see below)
of ocaml in his blog.  I guess it is because the line/character
numbers point to the _head_ of the expression that _follows_ where the
exception went through.  Is this a feature or a bug?

Thanks,

        Eijiro

> cat main.ml
let () =
  let ret = Bar.barFunction (-10) in
  print_int (ret + 100)
> cat foo.ml
let fooFunction x =
  if x > 0 then x - 1
  else raise (invalid_arg "Give me positive!")
> cat bar.ml
let barFunction x =
  let y = x + 1 in
  Foo.fooFunction y
> cat main.ml
let () =
  let ret = Bar.barFunction (-10) in
  print_int (ret + 100)
> cat bar.ml
let barFunction x =
  let y = x + 1 in
  Foo.fooFunction y
> cat foo.ml
let fooFunction x =
  if x > 0 then x - 1
  else raise (invalid_arg "Give me positive!")
> ocamlc -g foo.ml bar.ml main.ml -o test
> env OCAMLRUNPARAM=b ./test
Fatal error: exception Invalid_argument("Give me positive!")
Raised at file "pervasives.ml", line 22, character 17
Re-raised at file "foo.ml", line 3, character 46
Called from file "main.ml", line 3, character 2