Raise and reraise exceptions with Stdlib rather than Lwt (#1079)
* Re-raise exceptions to preserve backtraces
* Use failwith instead of Lwt.fail_with
Lwt's documentation reads:
> In most cases, it is better to use `failwith s` from the standard
> library.
and
> Whenever possible, it is recommended to use `raise exn` instead, as
> raise captures a backtrace, while `Lwt.fail` does not. If you call
> `raise exn` in a callback that is expected by Lwt to return a
> promise, Lwt will automatically wrap `exn` in a rejected promise,
> but the backtrace will have been recorded by the OCaml runtime.
>
> For example, `bind`'s second argument is a callback which returns a
> promise. And so it is recommended to use `raise` in the body of that
> callback.
>
> Use `Lwt.fail` only when you specifically want to create a rejected
> promise, to pass to another function, or store in a data structure.
Prefer to capture backtraces to improve debugability.
* Use Stdlib.raise instead of Lwt.fail to capture backtraces
53fbf3
-
Sep 01 14:12 +00:00