對(duì)教程的程序有一個(gè)不解之處
//關(guān)閉資源
try {
if(pw!=null)
? pw.close();
if(os!=null)
? os.close();
if(is!=null)?
? is.close();
if(isr!=null)
? isr.close();
if(br!=null)
? br.close();
為何要加一個(gè)判斷條件?是在想不通!
//關(guān)閉資源
try {
if(pw!=null)
? pw.close();
if(os!=null)
? os.close();
if(is!=null)?
? is.close();
if(isr!=null)
? isr.close();
if(br!=null)
? br.close();
為何要加一個(gè)判斷條件?是在想不通!
2016-02-29
舉報(bào)
2016-07-01
這是一種正確、嚴(yán)謹(jǐn)?shù)膶懛ā?/p>
驗(yàn)證非NULL是編碼中很重要的一環(huán)。假如本來就是NULL,這是調(diào)用各自的close()方法是會(huì)報(bào)錯(cuò)的。
如果在實(shí)例化這些對(duì)象時(shí)出錯(cuò)導(dǎo)致這些對(duì)象為NULL,或是實(shí)例化沒問題但中途出了什么異常導(dǎo)致這些對(duì)象為NULL,都會(huì)在未經(jīng)驗(yàn)證非NULL前嘗試調(diào)用close()方法關(guān)閉時(shí)報(bào)錯(cuò)。
p.s. 講師寫socket關(guān)閉條件時(shí)寫的是if(socket!=null)socket.close();這樣寫沒錯(cuò),但我想說一般是另一種寫法if(!socket.isClosed())socket.close();
2016-05-12
這樣的代碼才有健壯性
2016-04-23
這是程序的嚴(yán)謹(jǐn)性
是在finally中執(zhí)行的,就是說這段代碼肯定執(zhí)行。如果這些流在new的時(shí)候出錯(cuò)了,那調(diào)用close方法會(huì)拋出nullpoint exception。
2016-02-29
非空驗(yàn)證,如果當(dāng)pw、os、is等為空的時(shí)候close會(huì)報(bào)異常