从try/catch块内部返回变量
问题描述:
晚上好。你看,我这有很大的麻烦,看看它无解,但我知道一定有解决这个办法...从try/catch块内部返回变量
public static int[] prices() throws Exception {
try {
Connection con = getConnection();
Statement search = con.createStatement();
ResultSet rs = search.executeQuery("SELECT nomeProd FROM main;");
rs.last();
int k = rs.getRow();
rs.beforeFirst();
int prices[] = new int[k];
/*
for(int i = 1; i <= k; i++) {
}
*/
return prices;
} catch(Exception e) {
System.out.println(e);
}
}
所以,我需要的是从内部返回数组价格try-catch块或我将无法获得变量“k”。如果我在try块之前将k初始化为0,并在catch块之后创建数组,那么我将无法访问ResultSet变量(嗯,是的,我可以连接,重新创建语句和结果集,但是这可能会让我更头痛)。
任何人都可以帮助我吗?谢谢!
答
只需在try/catch
块之外声明您的变量,那么它们将在块的内部和外部均可访问。例如:
Connection con = null;
try {
con = getConnection();
// rest of code on the same lines
}
因此,只有在尝试块之前初始化Connection为null才能完成这项工作? –
@TomásDornasPerone我的回答是关于如何扩大变量的可见性。将连接设置为null,除默认值为空的变量声明外,将不执行任何操作。 –
谢谢,我已经声明了try/catch之外的所有变量,现在它都可以正常工作。谢谢Juned。 –