我正在制作迷你java游戏,编译时出错:
error:invalid method declaration;return type requied
public init() throws Exception {
^
第一个版本是public void init,但是我不能这样做,因为我需要使用try {..} catch(格式错误的......)或者在编译时我得到了另一个错误(需要抓住等等等等)。 / p>
这是代码:
public void run() throws Exception{
try{
this.zz();
}catch(MalformedURLException me){
throw me;
}
this.zo();
}
答案 0 :(得分:2)
您忘记添加返回类型。因为你返回0,我假设你想要返回一个int。因此,将标题更改为:
public int init() throws MalformedURLException
没有理由拥有throws Exception
。尽可能具体。
通常,方法的语法是:
访问修饰符( public,protected,private )返回类型( primitive,object,void )< strong>方法名称
以下是关于Defining Methods的Oracle教程。
此外,不确定这是否适用,但如果您只计划仅返回0或1,请考虑将方法标题更改为:
public boolean init() throws MalformedURLException
答案 1 :(得分:0)
error:invalid method declaration;return type requied
public init() throws Exception {
^
// You are missing the return type
您忘记将返回类型添加到方法声明中。每个Java方法都应指定返回类型。如果它没有向调用者返回任何内容,请将其设为void
。在您的情况下,它返回原始int
,因此将int
声明为返回类型。
需要稍微重新考虑您的代码:
// return type is int as you are returning primitive int `0`.
public int init() throws MalformedURLException {
//...
try{
this.zx();
}catch(MalformedURLException me){
// log the Exception here
// me.printStackTrace();
// logger.error(... exception message ....);
throw me;
// in case you return 0 , in spite of the Exception
// you will never know about the exceptional situation
}
return 0;
}
参考JLS 8.4。
答案 2 :(得分:0)
返回类型是强制性的。你必须提供一个。我想,别逃避这一点。