diff --git a/Cargo.lock b/Cargo.lock index f6f3e7d4c..ff4dcb28f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,6 +364,7 @@ name = "cratesfyi" version = "0.6.0" dependencies = [ "arc-swap 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.48 (registry+https://github.com/rust-lang/crates.io-index)", "badge 0.2.0", "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "comrak 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 7d7270ca4..ac9b2f452 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,6 +23,7 @@ r2d2_postgres = "0.14" # url@2 for other usecases url = { version = "2.1.1", features = ["serde"] } badge = { path = "src/web/badge" } +backtrace = "0.3" failure = "0.1.3" comrak = { version = "0.3", default-features = false } toml = "0.5" diff --git a/src/web/mod.rs b/src/web/mod.rs index bb90defd6..56c515fec 100644 --- a/src/web/mod.rs +++ b/src/web/mod.rs @@ -11,10 +11,11 @@ macro_rules! ctry { match $result { Ok(v) => v, Err(e) => { - return $crate::web::page::Page::new(format!("{:?}", e)) - .title("An error has occured") + log::error!("{}\n{:?}", e, backtrace::Backtrace::new()); + return $crate::web::page::Page::new(format!("{}", e)) + .title("Internal Server Error") .set_status(::iron::status::BadRequest) - .to_resp("resp"); + .to_resp("error"); } } }; @@ -27,10 +28,14 @@ macro_rules! cexpect { match $option { Some(v) => v, None => { - return $crate::web::page::Page::new("Resource not found".to_owned()) - .title("An error has occured") + log::error!( + "called cexpect!() on a `None` value\n{:?}", + backtrace::Backtrace::new() + ); + return $crate::web::page::Page::new("Internal Server Error".to_owned()) + .title("Internal Server Error") .set_status(::iron::status::BadRequest) - .to_resp("resp"); + .to_resp("error"); } } }; diff --git a/templates/error.hbs b/templates/error.hbs index bf2fd7d93..5a1ca0840 100644 --- a/templates/error.hbs +++ b/templates/error.hbs @@ -1,2 +1,3 @@ {{> header}} +{{content}} {{> footer}}