Une bonne réponse pourrait etre :

Non. meme si une erreur se produit, le programme doit continuer à tourner. 

Dans beaucoup d'applications critiques, le programme doit continuer à tourner quoiqu'il arrive. Le programme doit donc gérer l'exception en réglant le problème. Java a été conçut pour de tels systèmes.

L'opérateur new

Voici de nouveau le source du programme. Examinez bien la première ligne de la métode principale :
import java.io.*;
class Echo
{
  public static void main (String[] args) throws IOException
  {
    BufferedReader stdin = 
        new BufferedReader ( new InputStreamReader( System.in ) );

    String inData;

    System.out.println("Enter the data:");
    inData = stdin.readLine();

    System.out.println("You entered:" + inData );
  }
}
C'est une instruction qui nécessite deux lignes. Cela ne pose pas de problèmes. Les instructions se terminent lorsque l'on rencontre un point-virgule, pas une fin de ligne. N'hésitez pas à indenter vos programmes de cette manière, lorsqu'une instruction nécessite plus d'une ligne :
    BufferedReader stdin = 
        new BufferedReader ( new InputStreamReader( System.in ) );
L'instruction déclare une variable stdin. Cette instruction suit la syntaxe que nous avons vue précédemment :
nomDuType nomDeLaVariable  =  valeurInitiale;
Ici le nomDuType est BufferedReader, une classe qui fait partie de la bibliothèque java.io. Vous savez que c'est une classe, car ce n'est pas le nom d'un des huit types primitifs de données que nous avons vu. La variable stdin est un objet correspondant à ce type.

BufferedReader n'est pas un type primitif de donnée (aucune classe n'en est un !). L'utilisation d'une classe est un peu plus compliquée que l'utilisation d'un type primitif. Pour créer un objet BufferedReader pour notre programme, nous devons utiliser l'opérateur new :

    BufferedReader stdin = 
        new BufferedReader ( . . . . );
L'opérateur new est utilisé lorsque le programme s'exécute pour pouvoir créer un objet BufferedReader en mémoire. L'objet BufferedReader peut alors etre utilisé pour effectuer les entrées. "BufferedReader" apparait deux fois dans l'instruction, car le premier "BufferedReader" décrit le type de la variable  stdin, alors que le second indique à l'opérateur new quel type d'objet il doit créer.

QUESTION 8:

Est-ce que tous ces détails vous embrouillent ?
Ne soyez pas trop sévére et lisez attentivement avant de répondre ...