Principalmente capisco i potenziali problemi con le eccezioni controllate e perché Kotlin li omette. Tuttavia, il problema che sto incontrando è che non riesco a trovare alcun modo infallibile per indicare chiaramente al chiamante quali eccezioni può essere lanciata da una funzione.C'è un modo semplice per vedere quali eccezioni si verificano in una funzione di Kotlin?
Mi sono imbattuto nel numero innumerevole di volte in Python dove il mio programma si arresterà inaspettatamente dopo essere stato in esecuzione per mesi perché non mi ero reso conto che una funzione da qualche libreria che sto usando può sollevare una particolare eccezione. Sebbene essere costretti a rilevare eccezioni può essere piuttosto problematico, è bello vedere chiaramente tutte le potenziali eccezioni che una funzione può generare.
Quindi, tornando alla domanda, c'è un modo semplice per vedere quali eccezioni una funzione genera in Kotlin? Che dire dei metodi scritti in Java che vengono chiamati da Kotlin? Anche se solo in tooling (intelliJ). Non sto contando di scriverlo in javadoc o kdoc in quanto lo scrittore della funzione che stai usando potrebbe averlo omesso.
Suppongo che sia impossibile. Considera quanto segue: 'val cls = Class.forName (a); val method = cls.getMethod (b); method.invoke() ', dove' a' e 'b' vengono letti dal file o forniti dall'input dell'utente. Come puoi sapere quali eccezioni questo codice genera prima di eseguire il codice? –
Voglio dire che ti mancheranno tutti i tipi di informazioni sul tipo quando usi la riflessione. Non si potrebbero applicare gli stessi problemi se si stesse utilizzando il reflection in Java? Penso che sarebbe ancora utile sapere quali eccezioni possono essere lanciate nei casi in cui il tipo è noto in fase di compilazione. – zjuhasz