summaryrefslogtreecommitdiff
path: root/runtime/errors.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/errors.rs')
-rw-r--r--runtime/errors.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/runtime/errors.rs b/runtime/errors.rs
index 59928965b..daec653d1 100644
--- a/runtime/errors.rs
+++ b/runtime/errors.rs
@@ -11,6 +11,7 @@
use deno_broadcast_channel::BroadcastChannelError;
use deno_cache::CacheError;
+use deno_canvas::CanvasError;
use deno_core::error::AnyError;
use deno_core::serde_json;
use deno_core::url;
@@ -155,6 +156,13 @@ pub fn get_nix_error_class(error: &nix::Error) -> &'static str {
}
}
+fn get_canvas_error(e: &CanvasError) -> &'static str {
+ match e {
+ CanvasError::UnsupportedColorType(_) => "TypeError",
+ CanvasError::Image(_) => "Error",
+ }
+}
+
pub fn get_cache_error(error: &CacheError) -> &'static str {
match error {
CacheError::Sqlite(_) => "Error",
@@ -186,6 +194,8 @@ pub fn get_error_class_name(e: &AnyError) -> Option<&'static str> {
.or_else(|| deno_web::get_error_class_name(e))
.or_else(|| deno_webstorage::get_not_supported_error_class_name(e))
.or_else(|| deno_websocket::get_network_error_class_name(e))
+ .or_else(|| deno_websocket::get_network_error_class_name(e))
+ .or_else(|| e.downcast_ref::<CanvasError>().map(get_canvas_error))
.or_else(|| e.downcast_ref::<CacheError>().map(get_cache_error))
.or_else(|| {
e.downcast_ref::<BroadcastChannelError>()