簡體   English   中英

最終阻止在Oracle的JAVA存儲過程中無法正常工作

[英]Finally block not working in JAVA Stored procedure for Oracle

當我編譯下面的代碼時,它顯示錯誤“找不到符號變量”,但是如果我在finally塊中注釋了代碼,則能夠成功編譯。

請指教。

public static int writeFile (String p_file_path, String p_data) throws Exception 
{
  try {
    FileWriter outFile = new FileWriter(p_file_path,true);
    PrintWriter out = new PrintWriter(outFile);
    out.println(p_data);
  } catch (Exception  e) {
  } finally {
    out.close();
  }
  return SUCCESS;
}

如果要在finally塊中引用它,則需要在try塊之外定義“輸出”

PrintWriter out = null;
try
{
    FileWriter outFile = new FileWriter(p_file_path,true);
    out = new PrintWriter(outFile);
    out.println(p_data);
}
finally
{
    if (out != null)
        out.close();
}

您聲明out的中try塊。 這意味着,一旦您離開try-finally語句的try部分,就超出了范圍。 您可以在try語句之外聲明它,並在finally塊中進行空檢查,或者使用Java 7的try-with-resources語句。

PrintWriter out;
try {
    out = ...
} finally {
    if(out != null) {
        out.close();
    }
}

要么

try(PrintWriter out = ...) {
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM