Somente funciona no segundo exemplo:
/** Certo **/
try {
// bloco try
} catch (IOException ex) { // Exemplo de exception
// bloco catch 1
} catch (SQLException sqlex) { // Exemplo de exception
// bloco catch 2
} finally {
// bloco que será sempre executado, independente
// se houve ou não exception e se ela foi tratada ou não
}
/** Errado
try(){
} **/
O Try não tem nenhum campo de parâmetro, ou seja,
o parênteses não existe, para entender melhor tente traduzir as palavras em Inglês, no caso try seria +/- "fazer uma tentativa",
Logo nesta tentativa se lançar um exceção vai para o catch (pegar), então no catch tem o parâmetro onde irá pegar aquela exceção informada.
No finally você informa o que é para ser feito após todo código, exemplo:
Quando você tentou abrir uma conexão com banco de dados, então após utilizar aquela conexão você irá finalizar a conexão fechando ela no finally.
Você tem que salvar um arquivo, ele abre o arquivo para poder escrever nele, após escrever todo os dados deve fechar a escrita do arquivo caso contrário poderá ficar gravando "sujeira" do sistema no arquivo, podendo o arquivo ficar enorme.