當前位置:編程學習大全網 - 源碼下載 - Java問為什麽有些異常需要在函數頭用throw聲明,而有些不需要。

Java問為什麽有些異常需要在函數頭用throw聲明,而有些不需要。

所謂的檢查異常和運行時異常

Checked exception告訴外部用戶,這個方法在某些情況下可能會拋出這個錯誤,妳應該捕捉並處理這個錯誤,這樣程序才能在可能的情況下繼續運行(當然妳也可以通過throws聲明把異常暴露給上層,但畢竟有壹層是要捕捉這個異常的)。這些錯誤通常是可預測的,可以作為異常流來處理。作為壹種語法強制措施,檢查異常允許您在代碼編譯階段處理異常。

例如,當您打開、讀取或寫入文件時,可能會引發IOException。可以捕獲並提示終端用戶“文件操作失敗,請重試”等信息,而不是讓其拋入JVM導致當前線程掛起。

運行時異常可能在運行時某些不可預知的時刻產生,產生後往往沒有有效的手段進行處理,因此不需要強行聲明和捕獲。

妳可以認為checked exception是強迫妳處理這個異常(不管妳拋出多少層,都會在某個地方接住);運行時異常沒有這個限制,妳可以自由選擇是否捕捉。

= = =分割線= = =

事實上,我認為checked exception是壹個非常2B的設計,這在許多語言中都找不到。API設計不需要這種強制處理錯誤,通過封裝返回值可以更友好的處理。

只是說Groovy這種Java的變種(不完全是變種,但是語法類似)沒有這種痛苦的設計;Scala也沒有。

  • 上一篇:數據可視化軟件有哪些?
  • 下一篇:linux高手請進
  • copyright 2024編程學習大全網