Multi-catch for two exceptions with one handler

Handling two unrelated exceptions the same way meant either duplicating the catch block or introducing a common interface for the sole purpose of catching them together.

try {
    $this->gateway->charge($order);
} catch (NetworkException | TimeoutException $e) {
    $this->queue->retry($order);
} catch (DeclinedException $e) {
    $this->notify($order, $e->reason());
}

The variable is bound once and the types are alternatives, so the body sees whichever was thrown with no way to distinguish them beyond instanceof — which is the point. If the body needs to know which one it caught, it wanted two blocks. Order still matters: a parent class listed before a child catches both.