Нужно ли ставить операторы catch после try-блока? - PullRequest
0 голосов
/ 15 июля 2011

Я просто хочу знать, нужно ли ставить catch после блока try, или мы можем использовать блоки try без блока catch?

Ответы [ 8 ]

4 голосов
/ 15 июля 2011

Вам нужно поставить или catch или, наконец, блок после попытки.

try {

}
finally {

}

или

try {

}
catch (Exception e) {

}
1 голос
/ 15 июля 2011

Да, вы можете ... но вы должны поставить finally блок после try.Таким образом, вы можете сделать это так:

try
{
}
finally
{
}

или

try
{
}
catch(Exception e)
{
}
0 голосов
/ 20 мая 2016

Первое, что нужно помнить, это то, что вы должны знать, какова цель блока try-catch-finally.

  1. Блок try используется для проверки кода, написанного внутри него.Если код вызывает исключение, он выбрасывает исключение в блок catch.
  2. Блок catch используется для обработки сгенерированного исключения, например, предположим, что вы написали код, который предлагает пользователю вставитьтолько числа.Но пользователь ввел букву, поэтому код выдает исключение.Тогда исключение будет перехвачено блоком catch.Затем блок catch предлагает пользователю повторно ввести данные.Это то, что вы называете обработкой исключений .Но если вы хотите просто оставить блок catch пустым, это нормально.
  3. Вы можете написать try без ключевого слова catch, следующего за ним , но вы должны написать finallyпосле блока try.
  4. Код в блоке finally всегда будет выполняться независимо от того, что.Обычно вы пишете коды в блоке finally, чтобы закрыть ресурсы, открытые в блоке try, например файлы или соединения с базой данных.
  5. Вместо блока finally можно использовать попытку с ресурсами (доступно вjava 8).

Итак, вы можете написать try, затем catch, а затем finally, как в следующем примере:

try{
    //code
}
catch(Exception ex){
    //code to handle the problem.
}
finally{
    //Closing resources etc.
}

Или Вы можете написатьэто:

try{
    //code
}
catch(Exception ex){
    //code to handle the problem.
}

или это:

try{
    //code
}
finally{
    //Closing resources etc.
}

Но обычно вы хотите решить проблему с блоком catch.

0 голосов
/ 15 июля 2011

Да, вы можете использовать, наконец, вместо этого, но чтобы быть более практичным, я использую функцию «throws Exception», если могу, потому что использование блоков try и catch затрудняет чтение кода.

0 голосов
/ 15 июля 2011

В Java 7 инструкция try-with-resource не нуждается в выражении catch или finally

try(InputStream is = new FileInputStream(..))
{
    is.read();
}
0 голосов
/ 15 июля 2011

нужно ли ставить catch после блока try?

Нет, совсем нет. Не обязательно ставить catch после блока try, если только после блока try не следует блок finally. Просто помните одну вещь, после попытки поймать или, наконец, или оба могут сработать.

мы можем использовать try без catch?

Да, вы можете. Но это будет плохой практикой. Поскольку вы пишете блок try, вы должны писать блок catch (для перехвата исключения) и рекомендуется следовать за ним блоком finally.

0 голосов
/ 15 июля 2011

try без блока catch является синтаксической ошибкой, поскольку она не имеет смысла (если только вы не хотите использовать блок finally).Единственная причина использовать try для того, чтобы перехватить исключение (или сделать finally) внутри этого блока

0 голосов
/ 15 июля 2011

Да, вы можете написать попробуйте без улова.В этом случае вам требуется, наконец, блок.Для попытки требуется либо catch, либо finally, либо оба, что является как минимум одним уловом или, наконец, является обязательным.

try{
  // throw exception
} finally{
  // do something.
}

Но вы должны избегать этого случая, так как в этом случае вы потеряете детали исключения.Так что если вы не хотите обрабатывать это здесь, просто выбросьте это исключение.

...