2016-09-14 61 views
0

爲什麼拋出一個通用的異常在Java中是不好的做法?爲什麼在方法中拋出一個普通的異常不好?

class Test{ 
     public void ex() throws Exception{ 
      //...some code throwing for eg. IllegalAccesException() 
     }  
    } 
+2

爲什麼在Java中返回Object是一個不好的做法?同樣的道理。但更是如此。是代碼中的實際問題,還是來自JVM或操作系統? –

+0

因爲它不是特定的。你可能會在方法中拋出多種類型的異常,並用'Exception'將它們全部包裝起來,這使得你的代碼不那麼明確。 –

+0

如果您有新問題,請創建一個新帖子。操作現有的問題在這裏提出新的問題是不允許的。 – Tom

回答

1

當通過方法拋出異常時,通常應該知道它是什麼樣的異常。如果拋出一個普通的異常而不是特定的異常,那麼當拋出異常時,你將丟失異常的具體細節。

例如,Float.parseFloat()拋出:

1)的NullPointerException - >如果字符串是空

2)NumberFormatException的 - >如果該字符串不包含可解析的浮動。

如果是拋出一般「Exception」而不是「NullPointerException」和「NumberFormatException」,那麼將無法確定是否因爲字符串爲空或字符串包含非可分析浮點值而引發異常。

相關問題