Java異常十一:使用throw丟擲異常物件;throw和throws的區別

CSU小枯林發表於2020-11-24

1.為什麼要使用throw主動丟擲異常物件

根據已有內容可知,在程式中應該儘量避免異常,程式中出現了異常我們要進行丟擲和捕獲,這是一件很麻煩的事情。

但throw的作用是主動丟擲異常物件:這是自己給自己找麻煩?

其實在程式執行的過程中,合理使用異常物件可以用來規避可能出現的風險;也能夠利用異常物件完成一些程式的邏輯,以完成一些特定業務需求的特定邏輯。(如酒店入住時,如果年齡小於18或大於80必須要有親友陪同的情況)

2.throw示例

throw:可以用來處理特定的業務邏輯產生的一些需求。(這個性質的使用技巧需要在實際開發中逐漸積累經驗歸納用法

疑問:自己丟擲什麼型別的異常,其捕獲異常的時候,在該型別異常對應的catch塊中,加入特定的處理邏輯,以完成對實際應用中不同邏輯情況的處理?這種應用主動丟擲異常的情況,理論上沒問題,實際開發中習慣這麼幹嗎?

(1)第一種策略,自己丟擲的自己去處理

(2)第二種策略,自己丟擲的異常,自己不處理接著向上拋

(注:上圖寫的,Exception和Throwable兩種,其包含的點是:throws向上拋的異常,不能是throw丟擲異常的子類)

方法呼叫處,給了錯誤提示,要麼對這個異常進行捕獲,要麼繼續向上拋(這兒特殊,是main方法,如果main方法還不捕獲異常繼續向上拋就是拋給虛擬機器了,將由系統進行異常處理)


3.throw和throws的區別

相關文章