Ordem de captura de exceções em Java

Se não me engano, subclasses de Exceções devem ser capturadas primeiro. Mas ter que pegar qualquer RuntimeException e uma exceção verificada concreta, que deve ser capturada no início?

try {
    ...
} catch(RuntimeException e) {
    ...
} catch(IOException e) {
    ...
}

Esta ordem é correta? Ou está correto, mas é uma má opção?

questionAnswers(3)

yourAnswerToTheQuestion