Java異常十一:使用throw丟擲異常物件;throw和throws的區別
1.為什麼要使用throw主動丟擲異常物件
根據已有內容可知,在程式中應該儘量避免異常,程式中出現了異常我們要進行丟擲和捕獲,這是一件很麻煩的事情。
但throw的作用是主動丟擲異常物件:這是自己給自己找麻煩?
其實在程式執行的過程中,合理使用異常物件可以用來規避可能出現的風險;也能夠利用異常物件完成一些程式的邏輯,以完成一些特定業務需求的特定邏輯。(如酒店入住時,如果年齡小於18或大於80必須要有親友陪同的情況)
2.throw示例
throw:可以用來處理特定的業務邏輯產生的一些需求。(這個性質的使用技巧需要在實際開發中逐漸積累經驗歸納用法)
疑問:自己丟擲什麼型別的異常,其捕獲異常的時候,在該型別異常對應的catch塊中,加入特定的處理邏輯,以完成對實際應用中不同邏輯情況的處理?這種應用主動丟擲異常的情況,理論上沒問題,實際開發中習慣這麼幹嗎?
(1)第一種策略,自己丟擲的自己去處理
(2)第二種策略,自己丟擲的異常,自己不處理接著向上拋
(注:上圖寫的,Exception和Throwable兩種,其包含的點是:throws向上拋的異常,不能是throw丟擲異常的子類)
方法呼叫處,給了錯誤提示,要麼對這個異常進行捕獲,要麼繼續向上拋(這兒特殊,是main方法,如果main方法還不捕獲異常繼續向上拋就是拋給虛擬機器了,將由系統進行異常處理)
3.throw和throws的區別
相關文章
- 異常-throw的概述以及和throws的區別
- Java中異常分類和Throw和Throws的區別Java
- Java 建立使用者異常類、將異常一直向上拋、 throw和throws的區別Java
- Java異常機制關鍵字總結,及throws 和 throw 的區別Java
- 異常處理機制(一)之throw與throws的區別
- Swift 中 throws 異常丟擲Swift
- Java中throw和throws的區別Java
- Solon 用 throw 丟擲資料
- 異常-throws的方式處理異常
- oracle主動丟擲異常Oracle
- 啪,還敢丟擲異常
- c# 異常處理try catch finally_throwC#
- C++異常處理:try,catch,throw,finally的用法C++
- 異常-編譯期異常和執行期異常的區別編譯
- 高效Java:丟擲適合抽象的異常 - Kyle CarterJava抽象
- 建構函式中丟擲的異常函式
- 甩鍋(throws)_ java異常(Exception)處理JavaException
- Laravel 框架中 使用 Symfony 提供的方法 丟擲不同型別錯誤異常Laravel框架型別
- scope="session"和scope="request"--丟擲異常非常的bug+垃圾Session
- Java checked異常和unchecked異常。Java
- 執行時異常和檢查性異常區別
- C++程式丟擲異常後執行順序C++
- hibernate open session in view 丟擲異常解決方法SessionView
- java物件導向(異常)Java物件
- JAVA操作MySQL tImestamp列值為0時丟擲異常的處理~JavaMySql
- WCF服務端丟擲的異常會跑到客戶端服務端客戶端
- java中異常丟擲後程式碼還會繼續執行嗎Java
- Java 異常(二) 自定義異常Java
- migrate:rollback 時 dropForeign 丟擲的異常解決方案
- [譯] Ruby 2.6 Kernel 的system 方法增加是否丟擲異常引數。
- 中介軟體中丟擲異常,Handler中無法捕獲
- Golang 迴圈異常丟擲不影響整個請求Golang
- Java 異常處理:使用和思考Java
- Java入門教程十一(異常處理)Java
- Java異常Java
- Java 異常Java
- 異常JavaJava
- 【java】異常Java