Catch blocks should be ordered from most specific to most general.
The order matters because Java checks each catch block in sequence, and a more general exception type will catch exceptions meant for more specific types if it appears first. This can lead to unintended behavior. For example, catching a PaymentException before a more general Exception ensures payment-related issues are addressed specifically.