Originariamente inviato da valia
questo stesso risultato si ottiene con diversi metodi (senza usare la NumberFormatException): stai dando un ruolo sbagliato all'eccezione.
Puoi banalmente verificare che la tua stringa sia composta SOLO da numeri e/o da caratteri come +, /, - e spazi utilizzando le regex: se la stringa corrisponde ai requisiti hai ok, altrimenti ti fermi e richiedi l'inserimento di una stringa corretta.
Inoltre in genere il numero di telefono viene gestito (per comodità) con 3 campi:
1. combobox con i prefissi internazionali
2. textbox che accetta solo numeri (il prefisso)
3. textbox che accetta solo numeri (il numero effettivo)
da qui si deduce che puoi premendo ok (o chiama) controlli se hai una stringa valida (lunghezza maggiore di zero) se si la componi prendendo il valore dai 3 elementi, altrimenti ti fermi.
Questa resta per me la soluzione migliore per la scrittura di un numero di telefono.
Ora esigenze del cliente particolari ti portano a questo giro e a complicarti, inutilmente, la vita.
Non che non si possa fare come dici tu, utilizza gli strumenti del linguaggio in modo corretto: l'eccezione è fatta per segnalare situazioni ANOMALE di esecuzione, non per regolare il normale flusso di esecuzione (come stai facendo tu)