summaryrefslogtreecommitdiff
path: root/core/ops.rs
diff options
context:
space:
mode:
authorJan Špaček <patek.mail@gmail.com>2022-10-26 17:30:44 +0200
committerGitHub <noreply@github.com>2022-10-26 17:30:44 +0200
commit642118fdeb06817636fe03d0d8428fbd7927094d (patch)
tree9b74dc6d4267dc97818c21470af36311bfee9ac2 /core/ops.rs
parenta57faa8a0a1bbe895859146b1baee1b991e7ad99 (diff)
fix(core) Include causes when converting anyhow errors to JS exceptions (#16397)
When an op returns an `anyhow` error with a cause (usually added using the `.context()` method), the `Error` thrown into JavaScript contains only the message of the outernmost error in the chain. This PR simply changes the formatting of `anyhow::Error` from `"{}"` to `"{:#}"`: This significantly improves errors for code that embeds Deno and defines custom ops. For example, in [chiselstrike/chiselstrike](https://github.com/chiselstrike/chiselstrike), this PR improves an error message like ``` Error: could not plan migration ``` to ``` Error: could not plan migration: could not migrate table for entity "E": could not add column for field "title": the field does not have a default value ```
Diffstat (limited to 'core/ops.rs')
-rw-r--r--core/ops.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/ops.rs b/core/ops.rs
index b339b7d01..8694324ad 100644
--- a/core/ops.rs
+++ b/core/ops.rs
@@ -133,7 +133,7 @@ impl OpError {
pub fn new(get_class: GetErrorClassFn, err: Error) -> Self {
Self {
class_name: (get_class)(&err),
- message: err.to_string(),
+ message: format!("{:#}", err),
code: crate::error_codes::get_error_code(&err),
}
}