Migliorare una prova / cattura

1

Sono un programmatore di Python che cerca di fare i conti con l'inflessibilità di Java; Sto cercando di analizzare una data da una stringa in un oggetto Calendar

private Calendar parsedDate ( String dateString ) throws Exception {
  Calendar calendar = Calendar.getInstance();
  DateFormat format;
  Date date;
  try {
    format = new SimpleDateFormat("dd/MM/yyyy");
    date = format.parse(dateString);
    calendar.setTime(date);
  } catch (ParseException e) {
        System.out.print("wrong date format");
        calendar = null;
  }
  return calendar;
}

----
Main method
----

Calendar pd;
try {
  pd = parsedDate("01/01/2016");
  if(pd != null) {
    // do stuff
  } else {
    System.out.println("A problem");
  }
} catch (Exception e) {
  System.out.println(e.getMessage());
}

Speravo di poter rendere più succinto lo snippet del codice del metodo principale eliminando il try / catch - dal momento che sto già testando se è null, ma se lo faccio allora Java (beh, eclipse) si lamenta di Unhandled exception type Exception - ho davvero bisogno di entrambi i set di try / catch, o c'è un modo migliore per ottenere ciò che voglio?

    
posta ChrisW 20.04.2016 - 16:56
fonte

1 risposta

7

Il tuo metodo parsedDate non ha bisogno della clausola throws Exception perché l'eccezione è già stata rilevata.

Il compilatore esamina la firma del metodo quando viene chiamato un metodo e vede throws Exception , quindi si aspetta che tu lo gestisca.

    
risposta data 20.04.2016 - 17:09
fonte

Leggi altre domande sui tag