ich bekomme momentan einen Fehler bei Eclipse, mit dem ich nichts anfangen kann. An einer Position, bei der ich mit
Code:
throw new Exception ("Fehler")
einen Fehler signalisiere, der auf übergeordneter Ebene von
Code:
catch Exception ecx
abgefangen werden sollte meldet Eclipse: Source not found
und detalliert
Code:
Exception.<init>(String) line: not available
Exception(Thowable).<init>(String) line: 195
Die Methode ist mit throws Exception deklariert und java.lang.Throwable bzw. java.lang.Exception hatte ich auch schon zusätzlich explizit eingebunden. Weiß jemand wo das Problem liegen mag?
tut mir Leid, daß ich nicht eher geantwortet habe, bin nicht mehr eher dazu gekommen. Nun habe ich mir erstmal einen anständigen Nick organisiert. Der Eintrag oben, stammt von mir.
So zurück zum Thema:
Code:
public final class GeneDatasourceFileLoaderWorker extends SwingWorker<GeneDatasource, Object>
{
private File dsFile;
public GeneDatasourceFileLoaderWorker(final File dsFile)
{
super();
this.dsFile = dsFile;
}
protected GeneDatasource doInBackground()
throws Exception
{
FileInputStream fin = new FileInputStream(this.dsFile);
ProgessInputStream pin = new ProgessInputStream(this.dsFile.length(), fin);
BufferedReader br = new BufferedReader(new InputStreamReader(pin));
GeneDatasource gdb = new GeneDatasource(this.dsFile.getName());
String l = br.readLine();
String type = checkType(l);
if (type.equals("Type1"))
{
this.setProgress(0);
int[] entries = getAffyColIndex(l);
for(l = br.readLine() ; l != null ; l = br.readLine())
{
Gene gene = GeneIO.readAffyGene(l,entries);
if (gene != null) gdb.addGene(gene);
this.setProgress(pin.getPercentageDone());
}
return gdb;
}
else if (type.equals("Type2"))
{
this.setProgress(0);
for(l = br.readLine() ; l != null ; l = br.readLine())
{
Gene gene = GeneIO.readGene(l);
if (gene != null) gdb.addGene(gene);
this.setProgress(pin.getPercentageDone());
}
return gdb;
}
else { throw new Exception ("Fehler"); }
}
}
Oben ist die prozedur zu sehen, die eigentlich den Fehler zurückgeben sollte, nämlich ganz unten im else-Teil.
und hier nun ein Auschnitt jenes Codes, der die Fehlermeldung empfangen sollte.
Code:
public final class GeneDatabasePanel
extends JPanel implements ActionListener, PropertyChangeListener, ListSelectionListener
{
...
public void actionPerformed(ActionEvent e)
{
...
if (jfc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION)
{
try
{
File f = jfc.getSelectedFile();
this.currentDir = f.getParent();
this.loadButton.setEnabled(false);
this.progressBar.setString("loading datasource: "+f.getName());
this.progressBar.setVisible(true);
SwingWorker sw = new GeneDatasourceFileLoaderWorker(f);
sw.addPropertyChangeListener(this);
sw.execute();
} catch (Exception ecx)
{
JOptionPane.showMessageDialog(this, "Error loading datasource", "Error", JOptionPane.ERROR_MESSAGE);
ecx.printStackTrace(System.err);
}
}
this.enableButtons();
...
}
...
}