Страницы

Поиск по вопросам

среда, 3 октября 2018 г.

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

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


Ответ

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

Комментариев нет:

Отправить комментарий