Exception abfangen und ändern

Sirakov

Mitglied
Hallo zusammen,

hier erstmal das Abschnitt, was mir Probleme verursacht:

Code:
try {
	td = is.search(qp.parse(queryString), null, hitNumber);

	for (final ScoreDoc scoreDoc : td.scoreDocs) {
	    out.add(blah.getTableIDFieldName()
		    + ":\t" //$NON-NLS-1$
		    + is.doc(scoreDoc.doc).getField(
			    blah.getTableIDFieldName())
		    + "\t" //$NON-NLS-1$
		    + blah.getLucenedefaultfield()
		    + ":\t" //$NON-NLS-1$
		    + is.doc(scoreDoc.doc).getField(
			    blah.getLucenedefaultfield()));
	}

    } catch (final ParseException e1) {
	System.err.println("Fehler beim parsen von Anfrage: " //$NON-NLS-1$
				+ queryString);
    }

Das Problem ist, dass ich bei der Zeile:

Code:
td = is.search(qp.parse(queryString), null, hitNumber);

rausfliege, aber die Fehlermeldung lautet nicht "Fehler beim parsen..." sondern:

Code:
Exception in thread "main" org.apache.lucene.search.BooleanQuery$TooManyClauses:
maxClauseCount is set to 1024

Ich kann es mir nicht erklären, wieso nicht meine Fehlermeldung rausgespuckt wird. Kann mir jemand sagen, wie ich anstelle dieser Fehlermeldung meine eigene Formulierung setze? Ich kann den maxClauseCount erhöhen, so löse ich erstmal das Problem, aber für den Fall der Fälle möchte ich auch noch eine sinvolle Fehlermeldung bekommen.
 
Es scheint mir als würde da eine Exception geworfen, die von deinem catch-Block nicht gefangen wird. Dann fängt spätestens die JVM diese Exception und gibt sie entsprechend aus (und bricht ab).

Wenn du einen weiteren catch-Block schreibst, wo du die allgemeine "Exception" fängst (Achtung: bad style :p), kannst du auch deine eigene Fehlermeldung ausgeben.
 
Zurück