1

我试图在类的声明中抛出异常。像这样的东西:

class myClass throws A_Dangerous_Exception implements Something_to_Implement {

...

}

有什么建议么?

4

2 回答 2

4

你不能那样做。您可能的意思是从类的构造函数中抛出异常:

class myClass implements Something_to_Implement {
  myClass() throws A_Dangerous_Exception {}
}

如果您有多个构造函数,如果需要,每个构造函数都可以有不同的throws子句:

class myClass implements Something_to_Implement {
  myClass() throws A_Dangerous_Exception {}
  myClass(int a) throws A_Dangerous_Exception, A_Not_So_Dangerous_Exception {}
}

然后,无论何时实例化该类,都必须处理异常,方法是捕获它们或在throws实例化类的方法的子句中声明它们:

void myMethod() {
  try {
    new myClass();
  } catch (A_Dangerous_Exception e) {}
}

或者

void myMethod() throws A_Dangerous_Exception {
  new myClass();
}
于 2013-04-06T02:22:03.987 回答
2

你不能。异常只能从方法或构造函数中抛出。你可以这样做:

class myClass implements Something_to_Implement {

   public myClass() throws A_Dangerous_Exception {
      ...
   }
}

小心整理任何资源,例如FileOutputStream在从构造函数抛出异常之前。

阅读:例外

于 2013-04-06T02:21:06.950 回答