Это не приведет к утечкам памяти, если вы не выделяете ресурсы в блоке try
таким образом, что исключение не приводит к их освобождению (обычно с помощью метода Dispose
). В этом случае рассмотрите возможность использования блока using
, чтобы гарантировать высвобождение ресурсов.
Несколько неясно, что вы пытаетесь сделать, но похоже, что вы пытаетесь использовать исключения как механизм, позволяющий избежать явной проверки правильности индексов вашего массива. Это (обычно) плохо, так как исключения должны использоваться для исключительных обстоятельств, которых вы не ожидаете, если ввод является разумным и для которого нет разумного способа предотвратить его. Если вы предоставите немного больше контекста, мы сможем предложить лучший способ сделать это.
Кроме того, как говорит kfugslang , вы почти всегда должны избегать использования пустых и неквалифицированных блоков catch
, так как они будут ловить любое исключение , которое происходит в блоке try
, не только тот, которого вы ожидаете бросить. Например, некоторые внутренние методы, расположенные ниже по стеку, могут выдавать совершенно не связанное исключение, которое не имеет ничего общего с вашим собственным кодом, и его просто проглотят. Вы бы не стали мудрее, но результаты были бы непредсказуемы и, скорее всего, неверны.
Вместо этого вы должны использовать только квалифицированных catch
операторов для определенных типов исключений.