unreported exception java.io.ioexception gefangen werden müssen oder erklärt werden geworfen
Was hat das kompilieren Fehler zu bedeuten und wie kann ich es beheben?
Der compiler Punkte der Fehler in Zeile 86
final PiFace piface = new PiFaceDevice(PiFace.DEFAULT_ADDRESS, Spi.CHANNEL_0);
und sagt mir
unreported exception java.io.ioexception must be caught or declared to be thrown
Ist es, etwas zu tun, es braucht einen try/catch? Das ist die beste Antwort, die ich gefunden habe, von meiner sucht, aber ich bin mir nicht wirklich sicher, wie es zu realisieren hatte ich mal an dass und es produziert mehr Fehler (Sie können sehen, es ist auskommentiert).
Der komplette code ist unten:
public class Relay1 extends javax.swing.JFrame {
public Relay1() {
initComponents();
}
private void initComponents() {
//stuff that doesn't matter...
}
//try{
final PiFace piface = new PiFaceDevice(PiFace.DEFAULT_ADDRESS, Spi.CHANNEL_0);
//}catch(IOException e){
//System.out.println("Something went wrong...");
//}
public static void main(String args[]) throws InterruptedException, IOException {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Relay1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Relay1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Relay1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Relay1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Relay1().setVisible(true);
}
});
}
//Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
//End of variables declaration//GEN-END:variables
}
- Haben Sie wirklich brauchen, um zu posten, dass der code? Und ja, es hat zu tun mit
try-catch
undthrows
. - Mit dem try/catch-unkommentiert, was den Fehler machen, erhalten Sie dann?
- Ich nehme an, fast alle von es ist überflüssig zu der Frage, aber die Teile, ich bin mir nicht sicher.
- Ah ja, ein weiteres Opfer von Java ' s checked exceptions. Ein Sprach-feature gedacht, um Anfängern zu helfen, tatsächlich zwingt begginners in Fehler zu machen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie haben wirklich keinen code für Ihr aufgegebenes Ausnahme. Es wird durchaus akzeptabel, wenn diese Ausnahme nur propagiert, um die Anrufer, in diesem Fall der Ort, wo
new Relay1()
geschrieben. Um dies zu erreichen, schreiben Sie wie folgt vor:Dies ermöglicht es Ihnen, beide zu bewahren, die Diagnose-Informationen in der exception, und zur Befriedigung der compiler wünschen.
import java.io.IOException;
.RuntimeException
ist injava.lang
daher braucht man nicht noch den import. Es ist nicht klar, warum dein compiler beschwert sich darüber.Erklären PIFace vor dem try-block und dann umgeben die Initialisierung mit
try{ }
legen und einen catch-block nach rechts, die die Ausnahme behandelt. Wenn Sie umgeben Sie es mit einem try-block auf, ohne den ersten zu initialisieren, dann ist der scope der Variablen werden NUR zu diesem block. So etwas wie: