Implement raise from type checking

Fix #337 
You're essentially doing the same check for s.expr and s.from_expr. I think you can put the duplicate code into a separate function that checks if an expression is a valid exception and call that once with `s.expr` and once with `s.from_expr`.