Разница между catch, catch(Exception) и catch(Exception ex)

1,00
р.
Допустим, я не планирую использовать переменную ex и мне надо, чтобы обрабатывалась любая ошибка.
try { ... } catch(Exception ex) { return }
Надо ли в таком случае объявлять переменную ex?
Или можно сделать так:
try { ... } catch(Exception) { return }
Или вообще вот так:
try { ... } catch { return }
В чем разница и как правильнее?

Ответ
Переменную нужно объявлять, если в дальнейшем планируется её как-то использовать. Если важен только сам факт перехвата - достаточно указать всего лишь тип. Различие в catch(Exception) и пустом catch имеет место быть, если нужно перехватывать не CLS-совместимые исключения. Более подробнее об этом можно почитать на msdn. По ссылке как раз видно, что есть смысл и в таком коде:
catch(Exception) { ... } catch { ... }