https://github.com/munificent/vigil
"It goes without saying that any function that throws an exception which isn't caught is wrong and must be punished."