第五十八條 對可恢復的情況使用受檢異常,對程式設計錯誤使用執行時異常
對於異常,我們知道,基類為 Throwable,它有兩個子類,Exception 和 Error,Exception 通常被稱為異常, Error被稱為錯誤。Exception異常又分為兩種,一種是受檢異常(checkedexception) ,另一種是執行時異常(runtime exception) 。在決定使用受檢異常或執行異常時,主要原則: 如果期望呼叫者能夠是當地恢復,對於這種情況就應該使用受檢異常。通過丟擲受檢異常,在catch 中對該處進行異常處理,然後繼續往下面走邏輯。因此,方法中丟擲每個受檢異常,都是對使用者的一種提示:這是一種可能的結果。執行時異常和錯誤,它們都是不需要也不應該被捕獲的可丟擲結構,如果丟擲這方面異常,往往就屬於不可恢復的情形,繼續執行下去有害無益,如果程式沒有捕獲,則程式可能停止,並出現錯誤訊息。執行時異常表明程式設計錯誤,它標識著使用者違反了api的使用規則,例如,陣列越界異常,表明陣列下標值必須在零和陣列長度減1之間,空指標異常表明物件不能為空。
使用異常的原則:
一、 如果希望使用者能夠適當地恢復程式碼邏輯,則使用受檢的異常。
二、 用執行時異常來檢查和防範並標明編碼有錯誤。
三、 如果不確定是否有可能恢復,則使用未受檢異常。
相關推薦
第五十八條 對可恢復的情況使用受檢異常,對程式設計錯誤使用執行時異常
對於異常,我們知道,基類為 Throwable,它有兩個子類,Exception 和 Error,Exception 通常被稱為異常, Error被稱為錯誤。Exception異常又分為兩種,一種是受檢異常(checkedexception) ,另一種是執行時異常(runtime exceptio
第五十九條 避免不必要地使用受檢的異常
受檢的異常是java程式的一個很好的特性,使用它可以大大提高程式碼的可靠性,但如果大量使用異常,則會給程式碼的結構帶來不方便,如果聲明瞭大量的異常,都需要在丟擲異常的地方新增相對應的處理程式碼,這會給開發者帶來很大的負擔。異常這個東西,不能過分依賴。就像藥一樣,藥能治病,但
第五十九條 避免不必要地使用受檢的異常
受檢的異常是java程式的一個很好的特性,使用它可以大大提高程式碼的可靠性,但如果大量使用異常,則會給程式碼的結構帶來不方便,如果聲明瞭大量的異常,都需要在丟擲異常的地方新增相對應的處理程式碼,這會給開發者帶來很大的負擔。異常這個東西,不能過分依賴。就像藥一樣,藥能治病,但是醫藥三分毒。健康的一個
愛創課堂每日一題第五十八天-javascript對象的幾種創建方式
前端 前端學習 前端入門 北京前端1,工廠模式2,構造函數模式3,原型模式4,混合構造函數和原型模式5,動態原型模式6,寄生構造函數模式7,穩妥構造函數模式愛創課堂每日一題第五十八天-javascript對象的幾種創建方式
第五十八題(從尾到頭輸出鏈表)
urn stream 尾到頭 csdn ext fontsize 方法 name html 58.從尾到頭輸出鏈表。 題目:輸入一個鏈表的頭結點,從尾到頭反過來輸出每一個結點的值。 思路:題不難,提供幾種思路 1.使用棧的先進後出特性實現,遍歷鏈表元素依次入棧,再出棧
Android Studio 第五十八期 - Android屏幕亮度與休眠
android 亮屏 休眠 代碼已經整理好,效果如下圖: 地址:https://github.com/geeklx/myapplication2018/tree/master/p002_screen_light APK地址:http://down.51cto.com/data/24
C++筆記 第五十八課 類模板的概念和意義---狄泰學院
如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。 學習C++編譯環境:Linux 第五十八課 類模板的概念和意義 1.思考 在C++中是否能夠將泛型的思想應用於類? 2.類模板 一些類主要用於儲存和組織資料元素 類中資料組織的方式和資料元素的具體型
最後一個單詞的長度(leetcode簡單篇第五十八題)
給定一個僅包含大小寫字母和空格 ’ ’ 的字串,返回其最後一個單詞的長度。 如果不存在最後一個單詞,請返回 0 。 說明:一個單詞是指由字母組成,但不包含任何空格的字串。 示例: 輸入: “Hello World” 輸出: 5 筆者拿到這道題時也算是入坑了,
“全棧2019”Java第五十八章:多型中方法返回型別可以是子類型別
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第五十八章:多型中方法返回型別可以是子類型別 下一章 “全棧2019”Java第五十九章:抽
第五十八天 浮動佈局課堂筆記
一、display總結 inline 1.同行顯示,詳單與純文字,當一行顯示不下,如果就是一個字顯示不下,那麼顯示不下的哪一個字就會自動換行,和純文字的區別就是有標籤整體的概念,標籤與標籤間有一個空格的隔斷。 2.支援部分css樣式,不支援寬高|行高(行高會對映到父級block標籤)| margin上下
第五十一條 當心字串連線的效能
字串的串聯,就是用 + 把多個字串拼接成一個字串的便利途徑。連結 n 個字串為一個,這種用法很方便,但不一定都可取。例如,大量的串聯字串,很可能會造成效能的下降 public String statement(){ String result = "
第五十六條 遵守普遍接受的命名慣例
java 發展了幾十年了,已經有了一套自己的命名規範和慣例了,下面整理了一下,設計字面和語法,我們需要遵守這些慣例,一旦違反,不一定會出錯,但維護起來或者其他人可讀性就大大降低了,並給其他人造成一定困擾。 包: 包名一般用 . 符號隔開,一般都是小寫,並且以公司的頂級域
LeetCode刷題記錄———第五十八題(最後一個單詞長度)
題目描述 給定一個僅包含大小寫字母和空格 ’ ’ 的字串,返回其最後一個單詞的長度。 如果不存在最後一個單詞,請返回 0 。 說明:一個單詞是指由字母組成,但不包含任何空格的字串。 示例: 輸入: “Hello World” 輸出: 5 思路分析
第五十七條 只針對異常的情況才使用異常
異常,是java中不可繞過的一部分。善用異常,可以大大提高效率。但如果有一天,一不小心,遇到下面的程式碼 try { int i = 0; while (true){ range
第六十八條 executor和task優先於執行緒
java比較早的時候,就提供了 WorkQueue WorkQueueImpl 這些類,它允許客戶端將後臺的非同步執行緒加入這個佇列,當不在需要這個工作佇列時,客戶端端可以呼叫一個方法,讓後臺執行緒完成了在佇列中的工作後,終止自己。我們自己在用這個功能時,需要特別小心注意,防止出錯。java 1.5
第五十七條 只針對異常的情況才使用異常
異常,是java中不可繞過的一部分。善用異常,可以大大提高效率。但如果有一天,一不小心,遇到下面的程式碼 try { int i = 0; &
hohor學習日記:hiho一下 第五十八週
http://hihocoder.com/contest/hiho58/problem/1 題意分析 給定字串S,判定S是否存在子串S’滿足"aa…abb…bcc…c"的形式。其中abc為連續的三個字母,且a,b,c的數量相同。 原題目中數量相等的連續n(n>3)個字母也是
孤荷凌寒自學python第五十八天成功使用python來連線上遠端MongoDb資料庫
孤荷凌寒自學python第五十八天成功使用python來連線上遠端MongoDb資料庫 (完整學習過程螢幕記錄視訊地址在文末) 今天是學習mongoDB資料庫的第四天。今天的感覺是,mongoDB資料庫的知識點非常龐大,目前只算是剛剛看見一隅而已。 一、今
孤荷淩寒自學python第五十八天成功使用python來連接上遠端MongoDb數據庫
iss 完整 tab lib 詳細 價格 是我 () 是的 孤荷淩寒自學python第五十八天成功使用python來連接上遠端MongoDb數據庫 (完整學習過程屏幕記錄視頻地址在文末) 今天是學習mongoDB數據庫的第四天。今天的感覺是,mongoDB數據庫的知
【100題】第五十八題 從尾到頭輸出連結串列
一,題目 輸入一個連結串列的頭結點,從尾到頭反過來輸出每個結點的值。連結串列結點定義如下:struct ListNode { int m_nKey; ListNode* m_pNext; }; 二,分析 解