Salve a tutti,
sto cercando di completare un esercizio proposto sul mio libro di programmazione:
devo scrivere un programmino che richiede di inserire una stringa di testo, se è composta da massimo 20 caratteri è tutto ok, conta i caratteri e tanti saluti... ma se invece ci sono meno di 20 caratteri lancia un'eccezione (creata da me) e insiste nel richiedere una stringa più corta.
Vi metto quello che ho scritto (che è funzionante) ma non è quello che volevo.
quello che davvero volevo era beccare l'eccezione anche nel metodo 'ritenta()', ma non so come fare... qualche dritta?codice:public class MexLungo { public static void main( String[] args ) { System.out.println( "Scrivi un testo di massimo 20 caratteri." ); String s = SavitchIn.readLine(); try { if( s.length() > 20 ) throw new MessaggioTroppoLungoException(); } catch( MessaggioTroppoLungoException e ) { s = ritenta(); } System.out.println( "Hai inserito " + s.length() + " caratteri." ); } public static String ritenta() { System.out.print( "Ritenta con un messaggio più corto.\n> " ); String s = SavitchIn.readLine(); if( s.length() > 20 ) return ritenta(); else return s; } } class MessaggioTroppoLungoException extends Exception { public MessaggioTroppoLungoException() { super( "Messaggio troppo lungo" ); } public MessaggioTroppoLungoException( String s ) { super( s ); } }
Nel senso che non posso usare l'intestazione tipo:
public static String ritenta() throws eccezione
perchè la dovrei beccare dal main ancora con try-catch e mi ritroverei esattamente nella situazione di prima, no?


Rispondi quotando