Java異常十一:使用throw丟擲異常物件;throw和throws的區別
1.為什麼要使用throw主動丟擲異常物件
根據已有內容可知,在程式中應該儘量避免異常,程式中出現了異常我們要進行丟擲和捕獲,這是一件很麻煩的事情。
但throw的作用是主動丟擲異常物件:這是自己給自己找麻煩?
其實在程式執行的過程中,合理使用異常物件可以用來規避可能出現的風險;也能夠利用異常物件完成一些程式的邏輯,以完成一些特定業務需求的特定邏輯。(如酒店入住時,如果年齡小於18或大於80必須要有親友陪同的情況)
2.throw示例
throw:可以用來處理特定的業務邏輯產生的一些需求。(這個性質的使用技巧需要在實際開發中逐漸積累經驗歸納用法)
疑問:自己丟擲什麼型別的異常,其捕獲異常的時候,在該型別異常對應的catch塊中,加入特定的處理邏輯,以完成對實際應用中不同邏輯情況的處理?這種應用主動丟擲異常的情況,理論上沒問題,實際開發中習慣這麼幹嗎?
(1)第一種策略,自己丟擲的自己去處理
(2)第二種策略,自己丟擲的異常,自己不處理接著向上拋
(注:上圖寫的,Exception和Throwable兩種,其包含的點是:throws向上拋的異常,不能是throw丟擲異常的子類)
方法呼叫處,給了錯誤提示,要麼對這個異常進行捕獲,要麼繼續向上拋(這兒特殊,是main方法,如果main方法還不捕獲異常繼續向上拋就是拋給虛擬機器了,將由系統進行異常處理)
3.throw和throws的區別
相關文章
- Java中異常分類和Throw和Throws的區別Java
- 異常-throw的概述以及和throws的區別
- 異常處理機制(一)之throw與throws的區別
- Swift 中 throws 異常丟擲Swift
- throw和throws的區別
- Java基礎:throw和throws的詳解Java
- Solon 用 throw 丟擲資料
- 啪,還敢丟擲異常
- oracle主動丟擲異常Oracle
- 異常-throws的方式處理異常
- 高效Java:丟擲適合抽象的異常 - Kyle CarterJava抽象
- 異常-編譯期異常和執行期異常的區別編譯
- 擷取Spring框架自動丟擲異常Spring框架
- 異常處理方式throws
- 甩鍋(throws)_ java異常(Exception)處理JavaException
- Laravel 框架中 使用 Symfony 提供的方法 丟擲不同型別錯誤異常Laravel框架型別
- migrate:rollback 時 dropForeign 丟擲的異常解決方案
- Shiro身份驗證丟擲AuthenticationException異常,解決方案Exception
- 易優cms404頁面 丟擲HttpException異常HTTPException
- Java異常型別Java型別
- java中異常丟擲後程式碼還會繼續執行嗎Java
- 異常和異常呼叫鏈
- Java中Error和Exception的異同以及執行時異常(Runtime exception)與檢查型異常(checked exception)的區別JavaErrorException
- Java 異常(二) 自定義異常Java
- [譯] Ruby 2.6 Kernel 的system 方法增加是否丟擲異常引數。
- 異常-異常的概述和分類
- Java 異常處理:使用和思考Java
- 中介軟體中丟擲異常,Handler中無法捕獲
- Golang 迴圈異常丟擲不影響整個請求Golang
- Java入門教程十一(異常處理)Java
- 【java】異常Java
- java 異常Java
- Java 異常Java
- Java異常Java
- 異常JavaJava
- 錯誤: 代理丟擲異常錯誤: java.rmi.server.ExportException: Port already in use: 1099;JavaServerExportException
- JAVA物件導向基礎--異常Java物件
- Java異常使用原則Java