Il costruttore di PrintWriter può lanciare FileNotFoundException e questo significa che 'pw' non verrebbe inizializzato.

Il modo corretto e "difensivo" per gestire la cosa è:

codice:
PrintWriter pw = null;

try {
    pw = new PrintWriter(nomeFile);
    ....
} catch (IOException e) {
    ...
} finally {
    if (pw != null) {
        pw.close();
    }
}
E come ripeto, ti va bene che close() non lancia eccezioni checked.