Java catch语句之前的Return语句
我已经在AsncTask中添加了一个return语句,但仍然收到一个错误,告诉我添加一个。阻止此语法错误的唯一代码片段是在catch语句之后添加一个return语句,但这会适得其反,不能满足程序的需要,而且我无法访问需要访问的字符串(我需要检查return-OuputStream是否等于true) 代码: 但这会适得其反,不能满足项目的需求 那么,“程序的需求”是什么?如果抛出Java catch语句之前的Return语句,java,android,return,Java,Android,Return,我已经在AsncTask中添加了一个return语句,但仍然收到一个错误,告诉我添加一个。阻止此语法错误的唯一代码片段是在catch语句之后添加一个return语句,但这会适得其反,不能满足程序的需要,而且我无法访问需要访问的字符串(我需要检查return-OuputStream是否等于true) 代码: 但这会适得其反,不能满足项目的需求 那么,“程序的需求”是什么?如果抛出IOException,您希望结果是什么?它必须是真的、假的,或者是异常-目前,这些都不是 我建议,大多数时候,你只是让
IOException
,您希望结果是什么?它必须是真的、假的,或者是异常-目前,这些都不是
我建议,大多数时候,你只是让异常冒出来……你真的能像在发生IOException
的情况下什么都没有发生一样继续吗
作为旁注,这很难看:
if(result_true) {
return true;
} else {
return false;
}
只需使用:
return checkresult(result);
(理想情况下,重命名各种方法和变量以遵循Java命名约定。)
我还建议将其更改为return
boolean
而不是Booelean
,您必须在方法块中添加return
语句
像这样做
protected Boolean doInBackground(String... userandpass) {
boolean isOk = false;
// Your code
if(result_true) {
isOk = true;
} else {
isOk = false;
}
return isOk;
}
catch语句的一个分支既不返回值也不引发异常
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
那里的块需要有某种形式的代码来返回某些内容,否则该方法将无法正常运行。在catch(IOException e)
块中必须有一个return语句。当捕获IOException时,编译器不知道返回什么
您有2个选择,返回内容(false),或重新显示异常。我知道如果调用IOException,函数必须为false,但如何检查字符串是否为true?为什么不在这些catch块中为result\u true指定适当的值,然后在方法末尾返回result\u true?@srikanthyaradla因此,我检查结果,然后添加一个返回stat是否在catch块后重新赋值?是的,您在方法的开头用一些默认值声明变量结果,并在适当的地方赋值,然后在方法的末尾返回method@TheBlueCat:如果IOException意味着您应该返回false,您可以从catch块返回,如果您真的想…从第一眼看,我会的例如,第二个catch块是缺少return语句的执行路径。请删除对result\u true
的冗余检查,并在方法末尾添加return result\u true;
,这就是您所需要的if(result\u true)return true;else return false;
的作用与return result\u true
相同。从if-else块内返回布尔变量result\u true不会被视为从方法返回……因此我将另一个变量isOk设置为在块外返回
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}