try {
//some code } catch(TypeOfException exOne) {
//handle TypeOfException someway } catch (OtherTypeOfException exTwo) {
//handle OtherTypeOfException some other way } catch (Exception ex) {
//handle unknown exceptions in a general way } finally {
//any required cleanup code goes here }
try/finally
и using
почти одинаковы. using
попытается что-то сделать с объектом, независимо от того, удастся он или нет, он избавится от объекта, чтобы остановить утечку памяти, но не проигнорирует ошибку, препятствующую продолжению кода.
Try
попытается выполнить код внутри фигурных скобок, если произойдет ошибка, она проигнорирует ошибку и выйдет из условия Try
, затем продолжит чтение кода, если только ошибка не является критической, что вызывает сбой программы , Однако, когда using
потоков, это не гарантирует, что поток закрыт / утилизируется, потому что, когда происходит ошибка, он выходит из условия try
, прежде чем достигнет любого кода, который вы могли бы добавить внизу для удаления (плохая практика imo).
Код
Try
требует либо Catch
(s), и / или Finally
. Catch
дает вам возможность обрабатывать исключения, как правило, так и конкретные исключения. Примером использования может быть сгенерировать текстовый файл ошибки и сохранить его. using
не позволит вам обрабатывать исключения.
другой пример using
может быть, у вас есть список воспроизведения, не удается найти песню, область исключений nullreferece
может удалить элемент из списка.
Finally
всегда выполняется, даже если ошибка является критической и происходит сбой программы, будет выполнен код в предложении finally
, с объектами потока это то место, куда вы должны поместить свой код утилизации, так что если объект терпит неудачу в предложении try
, от которого он всегда избавляется.
надеюсь, я помог представить некоторую ясность относительно использования и try
/ catch
/ finally
.