Thoughts on the “guard” proposal for Go's error handling 4 years ago
C++ and Java exceptions have non-local flow and it's hard to determine what function can throw what, so if you do want to add error handling cases you would have to inspect every function to know if it throws or not
In general I agree with you, but Rust is already having this problem by people making liberal use of unwrap.