|
48 | 48 | type t<'res, 'err> = result<'res, 'err> = Ok('res) | Error('err)
|
49 | 49 |
|
50 | 50 | /**
|
51 |
| - `getExn(res)`: when `res` is `Ok(n)`, returns `n` when `res` is `Error(m)`, raise an exception |
| 51 | + `getExn(res, ~message=?)` returns `n` if `res` is `Ok(n)`, otherwise throws an exception with the message provided, or a generic message if no message was provided. |
52 | 52 |
|
53 | 53 | ```res example
|
54 | 54 | Result.getExn(Result.Ok(42)) == 42
|
55 | 55 |
|
56 | 56 | switch Result.getExn(Error("Invalid data")) {
|
57 |
| - | exception Not_found => assert(true) |
| 57 | + | exception _ => assert(true) |
| 58 | + | _ => assert(false) |
| 59 | + } |
| 60 | +
|
| 61 | + switch Result.getExn(Error("Invalid data"), ~message="was Error!") { |
| 62 | + | exception _ => assert(true) // Throws a JsError with the message "was Error!" |
58 | 63 | | _ => assert(false)
|
59 | 64 | }
|
60 | 65 | ```
|
61 | 66 | */
|
62 | 67 | @deprecated("Use 'getOrThrow' instead")
|
63 |
| -let getExn: result<'a, 'b> => 'a |
| 68 | +let getExn: (result<'a, 'b>, ~message: string=?) => 'a |
64 | 69 |
|
65 | 70 | /**
|
66 |
| - `getOrThrow(res)`: when `res` is `Ok(n)`, returns `n` when `res` is `Error(m)`, raise an exception |
| 71 | + `getOrThrow(res, ~message=?)` returns `n` if `res` is `Ok(n)`, otherwise throws an exception with the message provided, or a generic message if no message was provided. |
67 | 72 |
|
68 | 73 | ```res example
|
69 | 74 | Result.getOrThrow(Result.Ok(42)) == 42
|
70 | 75 |
|
71 | 76 | switch Result.getOrThrow(Error("Invalid data")) {
|
72 |
| - | exception Not_found => assert(true) |
| 77 | + | exception _ => assert(true) |
| 78 | + | _ => assert(false) |
| 79 | + } |
| 80 | +
|
| 81 | + switch Result.getOrThrow(Error("Invalid data"), ~message="was Error!") { |
| 82 | + | exception _ => assert(true) // Throws a JsError with the message "was Error!" |
73 | 83 | | _ => assert(false)
|
74 | 84 | }
|
75 | 85 | ```
|
76 | 86 | */
|
77 |
| -let getOrThrow: result<'a, 'b> => 'a |
| 87 | +let getOrThrow: (result<'a, 'b>, ~message: string=?) => 'a |
78 | 88 |
|
79 | 89 | /**
|
80 | 90 | `mapOr(res, default, f)`: When res is `Ok(n)`, returns `f(n)`, otherwise `default`.
|
|
0 commit comments