11 Stimmen

Während der Konstruktion kann der Standardkonstruktor keine Ausnahme behandeln: Typ Ausnahme, die vom impliziten Superkonstruktor ausgelöst wird

Der Code funktioniert gut, bis ich versuche, den Code in eine konstruierbare Klasse zu machen. Wenn ich versuche, ein Objekt daraus zu konstruieren, erhalte ich den Fehler

"Der Standardkonstruktor kann den Ausnahmetyp IOException, der vom impliziten Superkonstruktor ausgelöst wird, nicht behandeln. Muss einen expliziten Konstruktor definieren"

Dies ist der Fall, wenn man Ausnahmen für FileReader y BufferedReader .

Gracias

EDITです。

FileReader textFilethree = new FileReader (xFile);
BufferedReader bufferedTextthree = new BufferedReader (textFilethree) ;
String lineThree = bufferedTextthree.readLine();

Die xFile wird aus der Konstruktion entnommen. Beachten Sie, dass innerhalb dieser Konstruktion Ausnahmen geworfen werden.

6voto

jmj Punkte 232204

Der Standardkonstruktor ruft implizit den Superkonstruktor auf, von dem angenommen wird, dass er eine Ausnahme auslöst, die Sie im Konstruktor der Unterklasse behandeln müssen. Für eine detaillierte Antwort posten Sie den Code

class Base{

  public Base() throw SomeException{
    //some code
  }

}

class Child extends Base{
  public Child(){
   //here it implicitly invokes `Base()`, So handle it here
  }
}

3voto

iammilind Punkte 64857

Der Konstruktor der Basisklasse super.constructor wird implizit von dem Konstruktor der Erweiterungsklasse aufgerufen:

class Base
{
  public Base () throws Exception
  {
    throw <>;
  }
}

class Derived extends Base
{
  public Derived ()
  {
  }
}

Nun muss man die Ausnahme innerhalb von Derived() oder machen Sie den Konstruktor als,

public Derived() throws Exception
{
}

Welche Methode Sie auch immer new das Objekt von Derived entweder Sie fügen es ein in try-catch oder diese Methode zum Werfen von Exception wie oben. [Hinweis: Dies ist Pseudo-Code.]

2voto

Floating Sunfish Punkte 2271

Schließen Sie den Aufruf des Konstruktors einfach in ein Try-Catch ein.

0voto

Yusf Punkte 11

Jede Unterklasse, die eine Oberklasse erweitert, deren Standardkonstruktor eine Ausnahme behandelt, muss einen Standardkonstruktor haben, der die Ausnahme implementiert

c public Super() throws Exception {}}

class Sub extends Super{public Sub()throws Exception{//}}

0voto

Wenn Sie etwas wie dieses haben

class example{
    public void fileReader(String path) throws Exception{
         //some code that throws Exception
    }
 }

Vergewissern Sie sich, dass Sie dieselbe Sintaxis für die Methode verwenden, mit der Sie versuchen, das Objekt

class implementation{
     public void someMethod() throws Exception{
          example object = new example();
          example.filereader("C:\\....");
      }
  }

ist mir bei der Verwendung von Apache Poi passiert

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X