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