//******************************************************************** // ProductCodes.java // // Mostra l'uso del blocco try-catch. //******************************************************************** import cs1.Keyboard; public class ProductCodes { //----------------------------------------------------------------- // Conta il numero di codici di prodotti che sono stati immessi. // La zona di produzione è in 10 posizione. // La provincia in cui viene venduto il prodotto è composto // da 4 cifre dalla posizione 3 (inclusa) alla 7 (esclusa). // Per una legge locale i prodotti della zona R con provincia // >2000 non possono essere più venduti e devono essere dismessi //----------------------------------------------------------------- public static void main (String[] args) { String codice; char zona; int provincia, valido = 0, dismesso = 0; System.out.print ("Immettere il codice prodotto (es: abc1234asSde, X per uscire): "); codice = Keyboard.readString(); while (!codice.equals ("X")) { try { zona = codice.charAt(9); provincia = Integer.parseInt(codice.substring(3, 7)); if (zona == 'R' && provincia > 2000) dismesso++; else valido++; } catch (StringIndexOutOfBoundsException e) { X System.out.println ("Lunghezza del codice scorretta: " + codice); } catch (NumberFormatException e) { System.out.println ("L'identificativo di provincia non è un numero: " + codice); } System.out.print ("Immettere il codice prodotto (X per uscire): "); codice = Keyboard.readString(); } System.out.println ("# di codici validi immessi: " + valido); System.out.println ("# di codici da dismettere: " + dismesso); } }