Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在构造默认构造函数时,无法处理由隐式超级构造函数引发的异常:类型异常_Java_Exception - Fatal编程技术网

Java 在构造默认构造函数时,无法处理由隐式超级构造函数引发的异常:类型异常

Java 在构造默认构造函数时,无法处理由隐式超级构造函数引发的异常:类型异常,java,exception,Java,Exception,在我尝试将代码转换为可构造类之前,代码工作正常。当我试图从它构造一个对象时,我得到了错误 “默认构造函数无法处理隐式超级构造函数引发的异常类型IOException。必须定义显式构造函数” 这是在必须向FileReader和BufferedReader抛出异常时发生的 谢谢 编辑: FileReader textFilethree = new FileReader (xFile); BufferedReader bufferedTextthree = new BufferedReader (te

在我尝试将代码转换为可构造类之前,代码工作正常。当我试图从它构造一个对象时,我得到了错误

“默认构造函数无法处理隐式超级构造函数引发的异常类型IOException。必须定义显式构造函数”

这是在必须向
FileReader
BufferedReader
抛出异常时发生的

谢谢

编辑:

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

xFile是从构造中获取的。请注意,在此构造中会引发异常。

默认构造函数隐式调用超级构造函数,假定超级构造函数会引发某些异常,您需要在子类的构造函数中处理这些异常。有关详细答案,请张贴代码

class Base{

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

}

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

基类super.constructor由扩展类构造函数隐式调用:

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

class Derived extends Base
{
  public Derived ()
  {
  }
}
无论您使用什么方法
new
创建
Derived
的对象,都可以将其包含在
try catch
中,或者使该方法如上所述引发
异常。

[注意:这是伪代码]

任何扩展其默认构造函数处理某些异常的超类的子类,子类必须具有实现该异常的默认构造函数

超级班{ public Super()引发异常{}


类Sub扩展Super{public Sub()抛出异常{/}

只要将对构造函数的调用包含在Try Catch中即可。

如果您有类似的内容

class example{
    public void fileReader(String path) throws Exception{
         //some code that throws Exception
    }
 }
确保在尝试创建对象的方法上使用相同的轴

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

在使用apache poi时发生在我身上

你需要添加相关的构造函数,因为FileReader的参数只是构造函数的一个参数,抛出了异常。所以你需要捕获或抛出它到子类的构造函数中我确实抛出了它,但是当我尝试构造时,我在IDE中得到了错误消息。同样,在构造时需要处理它。我想忘记ide错误会出错,我运行了它,结果很好。如果我这样做,我以后会遇到问题吗?
class implementation{
     public void someMethod() throws Exception{
          example object = new example();
          example.filereader("C:\\....");
      }
  }