Gestire errori specifici
Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 52 di 63.
Un blocco try esegue codice che potrebbe generare un’eccezione. Un catch gestisce un’eccezione corrispondente e consente all’esecuzione di continuare dopo il blocco try/catch. Cattura un’eccezione specifica prevista, come NumberFormatException generata da toInt, in modo che gli errori di programmazione non correlati non vengano nascosti silenziosamente.
Dentro di main:
try {
println("oops".toInt())
} catch (error: NumberFormatException) {
println("invalid")
}L'analisi genera un'eccezione prima che println riceva un numero, quindi il blocco catch corrispondente stampa il messaggio di ripiego.
Intercetta l'eccezione specifica che la tua operazione dovrebbe generare.
Sfida
MedioCompleta parseMessage con i parametri text: String. Usa try/catch attorno a text.toInt(), senza rimuovere gli spazi. Restituisci value=n in caso di successo, sostituendo n con l’intero analizzato, oppure invalid quando viene generata NumberFormatException.
A meno che sopra non siano specificati limiti più restrittivi, le raccolte contengono al massimo 100 elementi a ogni livello e gli argomenti interi e i valori interi nelle raccolte sono compresi tra -1000 e 1000. Il testo fornito per l’analisi può includere rappresentazioni non valide o fuori intervallo, come descritto.
Restituisci un valore di tipo String. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il suo conteggio seguito dai suoi elementi, mentre una mappa inizia con il conteggio delle voci seguito da ciascuna chiave e valore. Le liste annidate ripetono il formato conteggio-ed-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un carattere di nuova riga. Le liste usano il formato standard tra parentesi quadre di Kotlin; non stampare etichette aggiuntive.
Provalo tu
fun parseMessage(text: String): String {
// Scrivi qui la tua soluzione.
return ""
}
fun main() {
val text = readLine().orEmpty()
println(parseMessage(text))
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Mappe Parte 1
Creare mappeConsultare le mappe in modo sicuroAggiornare le mappeControllare le chiaviRiepilogo - Banco di borsa4Collezioni annidate
Liste di listeAttraversare le righeRiepiloghi delle righeAppiattire liste annidateRipasso - File di posti a sedere7Pipeline di collezioni
Trasformare con MapFiltrare i valoriVerificare le regole della collezioneAccumulare con FoldRiepilogo - Totali approvati2Mappe Parte 2
Iterare sulle voci delle mappeChiavi e valoriMappe di frequenzaMappe annidateRiepilogo - Report delle frequenze5Progetto - Rubrica
Salva contattiTrova contatti8Ordinare e raggruppare
Ordinare in base a una chiaveCombinare i confrontiRaggruppare i valoriAssociare in base a una chiaveRiepilogo - Classifica per lunghezza11Gestione degli errori
Parsing senza eccezioniGestire errori specificiTry come espressioneConvalidare con requireRiepilogo - Quantità validate3Insiemi e appartenenza
Creare insiemiAggiornare gli insiemiOperazioni sugli insiemiVerificare i sottoinsiemiRiepilogo - Ospiti dell'evento6Valori delle funzioni
Scrivere funzioni lambdaTipi di funzionePassare funzioniVariabili catturateRiepilogo - Punteggio configurabileEsercitati da solo: Playground Kotlin