При построении конструктор по умолчанию не может обработать исключение: исключение типа бросается неявным супер-конструктором - PullRequest
7 голосов
/ 21 июля 2011

Код работает нормально, пока я не попытаюсь превратить код в конструируемый класс.Когда я пытаюсь построить объект из него, я получаю сообщение об ошибке

"Конструктор по умолчанию не может обработать исключение типа IOException, генерируемое неявным супер-конструктором. Необходимо определить явный конструктор"

Это когда приходится выдавать исключения FileReader и BufferedReader.

Спасибо

РЕДАКТИРОВАТЬ:

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

xFile получен из конструкции.Обратите внимание, что в этой конструкции создаются исключения.

Ответы [ 4 ]

6 голосов
/ 21 июля 2011

Конструктор по умолчанию неявно вызывает супер-конструктор, который, как предполагается, выдает какое-то исключение, которое вам нужно обработать в конструкторе подкласса. для подробного ответа отправьте код

class Base{

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

}

class Child extends Base{
  public Child(){
   //here it implicitly invokes `Base()`, So handle it here
  }
}
3 голосов
/ 21 июля 2011

Базовый класс super.constructor неявно вызывается расширяющим классом конструктора:

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

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

Теперь нужно обработать исключение внутри Derived() или сделать конструктор как,

public Derived() throws Exception
{
}

Каким бы методом вы не new подняли объект Derived, либо заключите его в try-catch, либо сделайте этот метод, выдав Exception, как указано выше. [Примечание: это псевдокод]

0 голосов
/ 13 декабря 2018

Просто приложите ваш звонок к конструктору в Try-Catch.

0 голосов
/ 18 февраля 2015

Любой подкласс, который расширяет суперкласс, конструктор по умолчанию которого обрабатывает некоторое исключение, у подкласса должен быть конструктор по умолчанию, который реализует исключение

класс Super {public Super () создает исключение {}}

класс Sub расширяет Super {public Sub () создает исключение {//}}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...