1
DataInputStream dis = null;
2
try
{
3
if(true)
{
4
throw new IllegalArgumentException("IllegalArgumentException is throw in here");
5
}else
{
6
dis = new DataInputStream(new FileInputStream("C:\\test"));
7
}
8
}catch(NullPointerException e)
{
9
System.out.println(e);
10
}finally
{
11
dis.close();
12
}
這只是一段測試代碼,代碼的本意是想拋出一個IllegalArgumentExceptioni,但是最后卻拋出了一個空指針異常,主要是因為在finally中沒有判斷dis是否為空,這樣的話就把原來的異常給掩蓋了,在LOG的輸出中給程序的DEBUG帶來了困難,造成了一種假象是空指針的錯誤.在編碼的時候我們注意一下這個問題.

2



3



4

5



6

7

8



9

10



11

12
