Try/Catch Is Not a General Failure Boundary in Solidity
Solidity try/catch is narrower than general exception handling: it catches specific high-level external call failures, but not malformed success returndata or every failure around the call expression.