java異常中的finally(一)


finally是保證語句能一定執行的。不管程序是否會報錯,我們把程序一定要執行的代碼放在finally中。

比如說流的關閉,不管在讀寫的過程中是否報錯,一定要關閉流,可以把流的關閉操作放在finally中。

代碼展示如下所示:

package exception;

import java.io.FileOutputStream;
import java.io.IOException;


/**
* finally在IO中的使用
* @author 小明
*
*/
public class FinallyDemo2 {

public static void main(String[] args) {
//以下是標准的流創建寫法
FileOutputStream fos = null;

try {
fos = new FileOutputStream("fos.dat");
fos.write(1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
if(fos != null){
fos.close();
}
//報錯1:有作用域,所以要把fos的定義放在try外面,否則會報錯
//報錯2:close()方法要求處理一個異常
//注意:在new創建的過程中也有可能報錯,比如說路徑不對(父路徑不存在)
//這時會創建失敗,那么fos仍然是空,那么這里應該多一層判斷,
//因為fos為空,關閉會拋出異常。
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

這時流創建時標准的寫法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM