Salve a tutti, 
come da titolo mi sto esercitando con le eccezioni.
Devo implementare questa classe:
Scrivere una classe astratta Java Opera, contenente i campi privati nome (String) e anno (int), durata(int), valutazioni (int[]) e il seguente metodo d'istanza:
public Opera (String titolo, int anno, int durata); crea un oggetto di tipo Opera ed assegna a ciascun campo dati il valore del parametro omonimo. In caso durata <= 0, o anno < 1900, il costruttore lancia un’eccezione accompagnata da un opportuno messaggio di errore, distinguendo i due casi.
Eccola qui:
public class Opera 
{
    private String nome;
    private int anno;
    private int durata;
    private int[] valutazioni;
    
    public Opera (String titolo, int anno, int durata) throws Exception
    {
        if(durata <= 0)
            throw new Exception("Errore: durata <= 0");
        if(anno < 1900)
            throw new Exception("Errore: anno < 1900");
            
        this.nome = titolo;
        this.anno = anno;
        this.durata = durata;
    
    }
}
    
Da quello che ho capito, nel caso in cui si entrasse in uno dei due if, il metodo (costruttore) interromperebbe la sua esecuzione e lancerebbe l'eccezioni al metodo chiamate (in questo caso il main che vedete qui sotto):
public class Main 
{
    public static void main(String[] args) 
    {
         try {
                Opera prima = new Opera("Back in black", 1980, 0);
            
              } 
         catch (Exception ex) 
        {
            
        }
}
Ok, in questo caso nel try si riscontrerebbe un'eccezione e infatti mi viene stampato il messaggio relativo a quell'errore ("Errore: durata <= 0").
Quello che non ho capito è: che devo farci con il catch ? 
Cioè, so che deve contenere il blocco di istruzioni utili per la gestione dell'eccezione. Ma con gestione che si intende? Dovrei cambiare la durata dell'opera? Non posso perché è di tipo private.
Oppure solamente un messaggio di errore?
E se volessi inserire il finally, dentro che ci andrebbe?
Grazie