2014-01-26 33 views
2

不允許在dart中的方法/函數簽名中允許異常聲明背後的動機是什麼?豈不是更好地讓程序員在方法簽名聲明的異常,然後檢查這些異常要麼傳播或夾(與捕捉塊)在檢查模式(有點像在Java)?我相信飛鏢的設計師們有充足的理由來決定他們的決定,如果他們能夠用這些信息啓發飛鏢的用戶,那將是非常好的。爲什麼沒有dart支持聲明的異常

更新:我讀了很多dartlang.org上的文章,似乎有一個非常精確,明確的理由,幾乎飛鏢的每一個設計決定。所以我相信這個問題有一個正確的答案,因此它不應該引起爭論。

回答

3

Java對異常的嚴格處理是獨一無二的。 (C++有類似的東西,但它是可選的,它的工作方式不同。)

的Python,JavaScript和甚至基於Java的斯卡拉和Groovy不同意這個處理的異常類型。

基本上,它增加了小樣本的樣板。實際上,大多數異常都是超越界限,空指針等等(這在瀏覽器中尤其如此,因爲文件I/O和其他錯誤不常見)。這些異常幾乎可以在任何地方發生。

+2

雖然我這個答案達成一致,並且它是達特設計師不想作爲流量控制的形式異常,注意異常和錯誤的飛鏢是不同的。例外被設計爲被捕獲,幾乎就像「開發人員可以期望的錯誤」,像npe的錯誤不應該這樣,並應該停止程序的執行。 –

+0

@MattB,是的,「錯誤」和「異常」之間的區分與Java非常相似。這種區別在許多其他語言中不存在。我在答案中互換了兩個。我會編輯它。 –

相關問題