Thanks, that's a good read. I realize that checked exceptions (I gather this is what they are called :)) are not a panacea, but it's better than nothing. Usually, this is how mistakes are made:
- programmer converts function ABC::xyz to use exceptions (throw them);
- then he modifies some function on a higher lever to handle the thrown exceptions;
- then he happily goes his way forgetting to check what else can call ABC::xyz
With this scenario, the checked exceptions would ID this problem on very first run.