Greedy_Raccoon: Problem mit Exception Throw

Hallo

habe ein für mich irgendwie unlösbares Problem mit dem Exception Throw bei Java

der Code sieht folgendermaßen aus:
----------------------  CODE ---------------------------
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Vector;

import com.kensingtonspace.sdk.node.ColumnDescriptor;
import com.kensingtonspace.sdk.node.Node;
import com.kensingtonspace.sdk.node.NodeDescriptor;
import com.kensingtonspace.sdk.node.NodeException;
import com.kensingtonspace.sdk.node.ResultSetFactory;
import com.kensingtonspace.sdk.node.TableDescriptor;

public class GlueTablesPrint implements Node, java.io.Serializable
{
     any_method(....) //liste zwecks lesbarkeit nicht die ganze auf
     {....}

public void prepare(...)
     throws NodeException
     {.....}

public void process(...)
     throws NodeException, IOException, PrinterException
     {....}
}
---------------------- CODE ENDE ---------------------------------
wenn ich das compilieren will, bekomme ich folgende Fehlermeldung:

GlueTablesPrint.java.129:
process(...)
in GlueTablesPrint cannot implement
process(...)
in com.kensingtonspace.sdk.node;
overriden method does not throw javax.print.PrintException
public void
process(...)

Jemand eine Ahnung woran das liegt?

danke lg Greedy Raccoon

  1. Jemand eine Ahnung woran das liegt?

    danke lg Greedy Raccoon

    ja, du mußt die exception in process deklarieren, wenn du diese überschreibst, da das original diese exception deklariert hat.

    1. ja, du mußt die exception in process deklarieren, wenn du diese überschreibst, da das original diese exception deklariert hat.

      Danke für die schnelle antwort.....
      wie deklariere ich die exception in process?

      ich habe versucht java.awt.print.Printable in die class zu implementieren als interface für java.awt.print.PrinterException, aber dann bekomme ich die Fehlermeldung dass class nicht abstract ist und deswegen fehler.
      ...
      was muss ich also wo deklarieren?

      Danke Lg
      Greedy_Raccoon

      1. in der deklaration der methode.
        ich sehe gerade, dass dort wohl ein schreibfehler ist. es muss PrintException heissen.

        1. in der deklaration der methode.
          ich sehe gerade, dass dort wohl ein schreibfehler ist. es muss PrintException heissen.

          nö is kein schreibfehler, weil es gibt die java.awt.print.PrinterException und die javax.print.PrinException.

          Da ich aber einen java.awt.print.PrintJob verwende, muss ich die PrinterException abfangen.

          ..... angenommen der code sieht so aus:
          public void process(.....)
          throws NodeException, IOException, PrinterException
          {

          }
          was muss ich da noch zusätzlich deklarieren?

          lg Greedy Raccoon

          1. was muss ich da noch zusätzlich deklarieren?

            Was hast Du an meiner Antwort nicht verstanden? Die Signatur *muß* übereinstimmen.

          2. Hi,

            Da ich aber einen java.awt.print.PrintJob verwende, muss ich die PrinterException abfangen.

            Dann fang sie doch ab (try - catch).

            Du versuchst ja, sie weiter nach oben zu reichen, nicht, sie abzufangen.
            Und das geht natürlich nicht, da die Methode, die Du überschreibst, diese Exception nicht wirft.

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            Schreinerei Waechter
            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          3. in der deklaration der methode.
            ich sehe gerade, dass dort wohl ein schreibfehler ist. es muss PrintException heissen.

            nö is kein schreibfehler, weil es gibt die java.awt.print.PrinterException und die javax.print.PrinException.

            Da ich aber einen java.awt.print.PrintJob verwende, muss ich die PrinterException abfangen.

            ..... angenommen der code sieht so aus:
            public void process(.....)
            throws NodeException, IOException, PrinterException
            {

            }
            was muss ich da noch zusätzlich deklarieren?

            lg Greedy Raccoon

            die meldung ist: overriden method does not throw javax.print.PrintException

            hier steht PrintException.

            dies muss auch in der methode deklariert werden. schreib es doch einfach dazu.

  2. public void process(...)
         throws NodeException, IOException, PrinterException
         {....}
    wenn ich das compilieren will, bekomme ich folgende Fehlermeldung:

    in GlueTablesPrint cannot implement
    process(...)
    in com.kensingtonspace.sdk.node;
    overriden method does not throw javax.print.PrintException

    Du implementierst process(), die vermutlich eine andere Signatur benötigt. Zum Beispiel könnte ich mir vorstellen, daß eine javax.print.PrintException geworfen werden muß.