Δημοσιεύτηκε: 15 Απρ 2012, 18:51
clepto έγραψε:
- Μορφοποιημένος Κώδικας: Επιλογή όλων
public Tag gettags( String songs ) {
try {
File song = new File( songs);
AudioFile file;
file = AudioFileIO.read(song);
Tag tags = file.getTag();
AudioHeader = file.getAudioHeader();
return tags;
} catch (CannotReadException ex) {
Logger.getLogger(Tags.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Tags.class.getName()).log(Level.SEVERE, null, ex);
} catch (TagException ex) {
Logger.getLogger(Tags.class.getName()).log(Level.SEVERE, null, ex);
} catch (ReadOnlyFileException ex) {
Logger.getLogger(Tags.class.getName()).log(Level.SEVERE, null, ex);
} catch (InvalidAudioFrameException ex) {
Logger.getLogger(Tags.class.getName()).log(Level.SEVERE, null, ex);
}
return tags;
}
όπως βλέπετε έχω δύο return tags;
αν σχολιάσω το δεύτερο θα μου πει ότι δεν υπάρχει return statement, αν σχολιάσω το πρώτο θα μου πει ότι δεν υπάρχει η μεταβλητή tags
γιατί μέσα στην try δεν πιάνει το return;
Η εντολή return μέσα στο try block θα εκτελεστεί μόνο αν δε συμβεί σφάλμα που πετάει exception στις προηγούμενες εντολές του try bock. Αν συμβεί τέτοιο σφάλμα, τότε ο έλεγχος μεταφέρεται στο αντίστοιχο catch block και εκτελείται ο κώδικας εκεί. Τέλος, Η εκτέλεση συνεχίζεται στην αμέσως επόμενη εντολή εκτός του try .. catch. Το πρόβλημά σου είναι οτι η αμέσως επόμενη εντολή εκτός του try .. catch είναι η
- Κώδικας: Επιλογή όλων
return tags;