何時使用Checked Exception?

2021-09-02 02:35:24 字數 874 閱讀 3305

本文不科普checked exception和unchecked exception,如果不知道這兩者區別的童鞋可以參考其他文章。

進入正題。

個人認為,當開發人員知道如何處理異常時應使用checked exception。但又乙個問題來了:什麼叫「知道」?什麼叫「不知道」?

我認為1. 使用checked exception的情況:異常在執行時出現是正常的,是我們期待的,出現後不會影響程式繼續正常工作的,開發人員應該知道此類異常出現後程式的執行方向的。

最典型的例子就是業務異常。比如使用者輸入的資料之間有一定的關係,不滿足這種關係時需要提示使用者,雖然可以採用在biz層直接返回字串資訊的方式,但很多時候該方法需要返回的資料不是乙個字串,這個時候運用異常就很方便。下面是示例**:

public class demoservice 

return goods;

}}@restcontroller

public class democontroller catch (bizexception e)

return result;

}}

有的童鞋可能會疑惑,這種情況也可以用uncheck exception啊,我的回答是,沒錯。但如果用uncheck exception,編譯器不會給你任何提示,很可能上線了之後你才發現,臥槽,這還有乙個異常忘了處理!

2. 使用unchecked exception的情況:異常不應該在執行時出現的,如果出現通常要修改程式才能避免的,開發人員在處理該異常時除了向外拋或者簡單列印之外無能為力的。

比如sqlexception,出現這種異常,一般都是sql寫的有問題,只能修改源**解決,即使捕獲這種異常,在執行時除了直接拋或者列印出來沒有任何其他能根本解決該類問題的辦法。

NoSQL與RDBMS 何時使用,何時不使用

naresh kumar是位軟體工程師與熱情的博主,對於程式設計與新事物擁有極大的興趣,非常樂於與其他開發者和程式設計師分享技術上的研究成果。近日,naresh撰文比較了nosql與rdbms,並詳細介紹了他們各自的特點與適用的場景。nosql並不是關係型資料庫管理系統,本文將會介紹nosql資料庫...

何時使用或何時不使用malloc函式

在初學資料結構時,我們往往不太清楚在定義乙個結構體指標時要不要使用malloc函式。例如以下的 linklist init linklist retrun h linklist s s data x 以上這兩句 是不行的,因為s沒有指向確切的位址,所以不能通過s來向它要指向的位址賦值 但是linkl...

MySQL何時使用索引 何時不使用索引

mysql何時使用索引 對乙個鍵碼使用 if null和between select from table name where key part1 1 and key part2 5 select from table name where key part1 is null 當使用不以萬用字元開...