Everything you say is spot on. However, I stand by my assessment that it’s best to stick with existing conventions from other programming languages whenever it makes sense. That’s IMO also a form of intuitiveness. catch would be a good name choice if Rust existed in a vacuum. However, other languages have something similar and almost all call it try {}. Also, many use catch {} to wrap the error handling code. Deviating from these established meanings would only confuse people coming from other programming languages (i.e. confuse almost everybody). Familiarity is probably also the reason why enum was picked as keyword for a feature that is technically a “tagged union” not an “enum”. Not the same, but close enough.