extend Exception rather than Throwable