I actually went the reversed route: I had all APIs use throws
first, but I couldn't handle them all in a safe way. I can assure you that I thought a lot about it and tried different things. In the end, I refactored my entire project to use Result
instead (which took 2 full work days) and this solved all my problems except for the two mentioned in the proposals motivation.
The Core Team has proven with SE-0345 that it can change its opinion, even if a requested feature is on the list of Commonly Rejected Changes. Most interestingly, typed throws aren't even on that list.