Agree. There's a way to handle exceptions in `__toString` as uncatchable errors but it's not very trivial so it's better to avoid doing anything that can throw an exception inside it.