The return type of std::thread::JoinHandle::join is
pub type Result<T> = crate::result::Result<T, Box<dyn Any + Send + 'static>>;
What useful things can I do with something of type `Box<dyn Any + Send + 'static>? Should I assume this can be about anything, or is there a way to know what it is?
That result indicates if the thread panicked; panic payloads are almost always String or &'static str so you can attempt to downcast the Any type to those.