浏览代码

Attempt to conver panic errors to String in addition to &str.

Jing Yang 4 年之前
父节点
当前提交
8c5b85088d
共有 1 个文件被更改,包括 6 次插入4 次删除
  1. 6 4
      src/daemon_env.rs

+ 6 - 4
src/daemon_env.rs

@@ -78,10 +78,12 @@ impl DaemonEnv {
             .into_iter()
             .filter_map(|join_handle| {
                 let err = join_handle.join().err()?;
-                let err_str = err
-                    .downcast_ref::<&str>()
-                    .map_or("unknown panic error", |s| s.to_owned());
-                Some("\n".to_owned() + err_str)
+                let err_str = err.downcast_ref::<&str>().map(|s| s.to_owned());
+                let err_string =
+                    err.downcast_ref::<String>().map(|s| s.as_str());
+                let err =
+                    err_str.or(err_string).unwrap_or("unknown panic error");
+                Some("\n".to_owned() + err)
             })
             .collect();
         let recorded_errors: Vec<String> = data