summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/errors.rs114
1 files changed, 58 insertions, 56 deletions
diff --git a/runtime/errors.rs b/runtime/errors.rs
index 0c26e0e47..4268fbd50 100644
--- a/runtime/errors.rs
+++ b/runtime/errors.rs
@@ -41,12 +41,14 @@ use deno_ffi::IRError;
use deno_ffi::ReprError;
use deno_ffi::StaticError;
use deno_fs::FsOpsError;
+use deno_fs::FsOpsErrorKind;
use deno_http::HttpError;
use deno_http::HttpNextError;
use deno_http::WebSocketUpgradeError;
use deno_io::fs::FsError;
use deno_kv::KvCheckError;
use deno_kv::KvError;
+use deno_kv::KvErrorKind;
use deno_kv::KvMutationError;
use deno_napi::NApiError;
use deno_net::ops::NetError;
@@ -760,67 +762,67 @@ fn get_websocket_handshake_error(error: &HandshakeError) -> &'static str {
}
fn get_fs_ops_error(error: &FsOpsError) -> &'static str {
- match error {
- FsOpsError::Io(e) => get_io_error_class(e),
- FsOpsError::OperationError(e) => get_fs_error(&e.err),
- FsOpsError::Permission(e) => get_permission_check_error_class(e),
- FsOpsError::Resource(e) | FsOpsError::Other(e) => {
- get_error_class_name(e).unwrap_or("Error")
- }
- FsOpsError::InvalidUtf8(_) => "InvalidData",
- FsOpsError::StripPrefix(_) => "Error",
- FsOpsError::Canceled(e) => {
+ use FsOpsErrorKind::*;
+ match error.as_kind() {
+ Io(e) => get_io_error_class(e),
+ OperationError(e) => get_fs_error(&e.err),
+ Permission(e) => get_permission_check_error_class(e),
+ Resource(e) | Other(e) => get_error_class_name(e).unwrap_or("Error"),
+ InvalidUtf8(_) => "InvalidData",
+ StripPrefix(_) => "Error",
+ Canceled(e) => {
let io_err: io::Error = e.to_owned().into();
get_io_error_class(&io_err)
}
- FsOpsError::InvalidSeekMode(_) => "TypeError",
- FsOpsError::InvalidControlCharacter(_) => "Error",
- FsOpsError::InvalidCharacter(_) => "Error",
+ InvalidSeekMode(_) => "TypeError",
+ InvalidControlCharacter(_) => "Error",
+ InvalidCharacter(_) => "Error",
#[cfg(windows)]
- FsOpsError::InvalidTrailingCharacter => "Error",
- FsOpsError::NotCapableAccess { .. } => "NotCapable",
- FsOpsError::NotCapable(_) => "NotCapable",
+ InvalidTrailingCharacter => "Error",
+ NotCapableAccess { .. } => "NotCapable",
+ NotCapable(_) => "NotCapable",
}
}
fn get_kv_error(error: &KvError) -> &'static str {
- match error {
- KvError::DatabaseHandler(e) | KvError::Resource(e) | KvError::Kv(e) => {
+ use KvErrorKind::*;
+ match error.as_kind() {
+ DatabaseHandler(e) | Resource(e) | Kv(e) => {
get_error_class_name(e).unwrap_or("Error")
}
- KvError::TooManyRanges(_) => "TypeError",
- KvError::TooManyEntries(_) => "TypeError",
- KvError::TooManyChecks(_) => "TypeError",
- KvError::TooManyMutations(_) => "TypeError",
- KvError::TooManyKeys(_) => "TypeError",
- KvError::InvalidLimit => "TypeError",
- KvError::InvalidBoundaryKey => "TypeError",
- KvError::KeyTooLargeToRead(_) => "TypeError",
- KvError::KeyTooLargeToWrite(_) => "TypeError",
- KvError::TotalMutationTooLarge(_) => "TypeError",
- KvError::TotalKeyTooLarge(_) => "TypeError",
- KvError::Io(e) => get_io_error_class(e),
- KvError::QueueMessageNotFound => "TypeError",
- KvError::StartKeyNotInKeyspace => "TypeError",
- KvError::EndKeyNotInKeyspace => "TypeError",
- KvError::StartKeyGreaterThanEndKey => "TypeError",
- KvError::InvalidCheck(e) => match e {
+ TooManyRanges(_) => "TypeError",
+ TooManyEntries(_) => "TypeError",
+ TooManyChecks(_) => "TypeError",
+ TooManyMutations(_) => "TypeError",
+ TooManyKeys(_) => "TypeError",
+ InvalidLimit => "TypeError",
+ InvalidBoundaryKey => "TypeError",
+ KeyTooLargeToRead(_) => "TypeError",
+ KeyTooLargeToWrite(_) => "TypeError",
+ TotalMutationTooLarge(_) => "TypeError",
+ TotalKeyTooLarge(_) => "TypeError",
+ Io(e) => get_io_error_class(e),
+ QueueMessageNotFound => "TypeError",
+ StartKeyNotInKeyspace => "TypeError",
+ EndKeyNotInKeyspace => "TypeError",
+ StartKeyGreaterThanEndKey => "TypeError",
+ InvalidCheck(e) => match e {
KvCheckError::InvalidVersionstamp => "TypeError",
KvCheckError::Io(e) => get_io_error_class(e),
},
- KvError::InvalidMutation(e) => match e {
+ InvalidMutation(e) => match e {
KvMutationError::BigInt(_) => "Error",
KvMutationError::Io(e) => get_io_error_class(e),
KvMutationError::InvalidMutationWithValue(_) => "TypeError",
KvMutationError::InvalidMutationWithoutValue(_) => "TypeError",
},
- KvError::InvalidEnqueue(e) => get_io_error_class(e),
- KvError::EmptyKey => "TypeError",
- KvError::ValueTooLarge(_) => "TypeError",
- KvError::EnqueuePayloadTooLarge(_) => "TypeError",
- KvError::InvalidCursor => "TypeError",
- KvError::CursorOutOfBounds => "TypeError",
- KvError::InvalidRange => "TypeError",
+ InvalidEnqueue(e) => get_io_error_class(e),
+ EmptyKey => "TypeError",
+ ValueTooLarge(_) => "TypeError",
+ EnqueuePayloadTooLarge(_) => "TypeError",
+ InvalidCursor => "TypeError",
+ CursorOutOfBounds => "TypeError",
+ InvalidRange => "TypeError",
}
}
@@ -1087,6 +1089,7 @@ mod node {
use deno_node::ops::os::priority::PriorityError;
pub use deno_node::ops::os::OsError;
pub use deno_node::ops::require::RequireError;
+ use deno_node::ops::require::RequireErrorKind;
pub use deno_node::ops::worker_threads::WorkerThreadsFilenameError;
pub use deno_node::ops::zlib::brotli::BrotliError;
pub use deno_node::ops::zlib::mode::ModeError;
@@ -1158,19 +1161,18 @@ mod node {
}
pub fn get_require_error(error: &RequireError) -> &'static str {
- match error {
- RequireError::UrlParse(e) => get_url_parse_error_class(e),
- RequireError::Permission(e) => get_error_class_name(e).unwrap_or("Error"),
- RequireError::PackageExportsResolve(_)
- | RequireError::PackageJsonLoad(_)
- | RequireError::ClosestPkgJson(_)
- | RequireError::FilePathConversion(_)
- | RequireError::UrlConversion(_)
- | RequireError::ReadModule(_)
- | RequireError::PackageImportsResolve(_) => "Error",
- RequireError::Fs(e) | RequireError::UnableToGetCwd(e) => {
- super::get_fs_error(e)
- }
+ use RequireErrorKind::*;
+ match error.as_kind() {
+ UrlParse(e) => get_url_parse_error_class(e),
+ Permission(e) => get_error_class_name(e).unwrap_or("Error"),
+ PackageExportsResolve(_)
+ | PackageJsonLoad(_)
+ | ClosestPkgJson(_)
+ | FilePathConversion(_)
+ | UrlConversion(_)
+ | ReadModule(_)
+ | PackageImportsResolve(_) => "Error",
+ Fs(e) | UnableToGetCwd(e) => super::get_fs_error(e),
}
}