Effective Java之對可恢復的情況使用受檢異常,對程式設計錯誤使用執行時異常(五十八)
java將所有的錯誤封裝為一個物件,其根本父類為Throwable, Throwable有兩個子類:Error和Exception。
異常分成三種結構
1.錯誤:Error是Throwable 的子類,用於指示合理的應用程式不應該試圖捕獲的嚴重問題。
在執行該方法期間,無需在其 throws 子句中宣告可能丟擲但是未能捕獲的 Error的任何子類,因為這些錯誤可能是再也不會發生的異常條件。
大多數這樣的錯誤都是異常條件。
2.執行時異常:RuntimeException是那些可能在 Java 虛擬機器正常執行期間丟擲的異常的超類。
可能在執行方法期間丟擲但未被捕獲的RuntimeException 的任何子類都無需在 throws 子句中進行宣告。它是Exception的子類。
執行時異常和錯誤統稱為未受檢結構,執行時異常又叫未受檢異常。
未受檢結構的行為都是等同的,都是不需要也不應該丟擲的,因為如果程式丟擲了未受檢異常或者錯誤,說明是不可恢復的異常,繼續下去有害無益。
但是,他們的區別是runtimeException一般是程式設計錯誤,error一般是系統的錯誤。
3.受檢異常:Exception類及其子類是 Throwable 的一種形式,它指出了合理的應用程式想要捕獲的條件。
定義方法時必須宣告所有可能會丟擲的exception; 在呼叫這個方法時,必須捕獲它的checked exception,不然就得把它的exception傳遞下去;exception是從java.lang.Exception類衍生出來的。例如:IOException,SQLException就屬於Exception
相關推薦
Effective Java之對可恢復的情況使用受檢異常,對程式設計錯誤使用執行時異常(五十八)
java將所有的錯誤封裝為一個物件,其根本父類為Throwable, Throwable有兩個子類:Error和Exception。 異常分成三種結構 1.錯誤:Error是Throwable 的子類,用於指示合理的應用程式不應該試圖捕獲的嚴重問題。
第五十八條 對可恢復的情況使用受檢異常,對程式設計錯誤使用執行時異常
對於異常,我們知道,基類為 Throwable,它有兩個子類,Exception 和 Error,Exception 通常被稱為異常, Error被稱為錯誤。Exception異常又分為兩種,一種是受檢異常(checkedexception) ,另一種是執行時異常(runtime exceptio
對可恢復的情況使用受檢異常,對程式設計錯誤使用執行時異常。
Java程式設計語言提供了三種可丟擲結構:受檢的異常(checked exception)、執行時異常(run-time exception)和錯誤(error)。關於什麼時候適合使用哪種可丟擲結構,程式設計師中間存在一些困惑。雖然這項決定並不總是那麼清晰,但還是有些
【讀書筆記 - Effective Java】05. 避免創建不必要的對象
auto ive effective zone 如果 方式 一次 body 安全 1. 如果對象是不可變的(immutable),它就始終可以被重用。 (1) 特別是String類型的對象。 String str1 = new String("str"); // 創建許多
【Effective Java讀書筆記】創建和銷毀對象(一):考慮使用靜態工廠方法代替構造器
返回對象 boolean 簡化 將不 其他 種類型 bigint color pre 類可以提供一個靜態方法,返回類的一個靜態實例,如Boolean包裝類的一個獲取實例的靜態方法 1 public static Boolean valueOf(boolean b) { 2
Effective Java 3rd 條目27 消除非受檢警告
當你用泛型程式設計時,你將會看見許多編譯器警告:非受檢強轉警告、非受檢方法呼叫警告、非受檢引數化vararg型別警告和非受檢轉換警告。你多熟悉泛型一些,你將獲得更少警告,但是不要期待這些新程式碼乾淨利索地編譯。 許多非受檢警告容易消除。例如,假設你不慎編寫如下宣告: Set<L
Effective Java之謹慎地覆蓋clone(十一)
Clone提供一種語言之外的機制:無需呼叫構造器就可以建立物件。 它的通用約定非常弱: 建立和返回該物件的一個拷貝。這個拷貝的精確含義取決於該物件的類。一般含義是,對於任何物件x,表示式x.clone() != x 將會是true,並且,表示式x.clone
Effective Java之靜態工廠代替構造器(一)
優勢1:它們有名稱,所以在多個構造器時,能夠根據靜態工廠的方法的名稱找到哪個構造器。 優勢2:能夠實現單例模式,不必在每次呼叫重新建立新物件。 優勢3:當建立引數化引數例項時,使用靜態工廠方法更加簡單。 優勢4:它們可以返回原返回型別的任何子物件。 書中
Effective Java之避免建立不必要的物件(五)
1.對於不可變類(immutable),他始終可以被重用。 如:String類 String s = new String(“string”); 這種方法建立了兩個String物件,因為傳入String構造器的引數本身就是一個String例項,new再建立
Java 《Effective Java 中文版 第2版》學習筆記 遇到多個構造器時要考慮用構建器
fec 利用 客戶端代碼 except car beans pri 很好 種類 靜態工廠和構造器有個共同的局限性:它們都不能很好地擴展到大量的可選參數。 當一個類中有若幹個必選屬性和多個可選屬性時,采用重疊構造器模式、JavaBeans模式或者Builder模式,但
java ssl 使用不同的加密套件,對性能影響很大
color 可能 with 左右 cdh ecdh 使用 設置 測試 一直以來都是使用java默認的【加密套件】來處理ssl請求,突然有一天我嘗試顯式的設置了一組加密套件後,發現圖片顯示的速度明顯快了一倍左右。 經過使用幾組不同的加密套件測試後,發現使用 TLS_ECDHE
Java之執行時異常與編譯時異常區別
Java中用2種方法處理異常: 1.在發生異常的地方直接處理; 2.將異常拋給呼叫者,讓呼叫者處理。 Java異常可分為3種: (1)編譯時異常:Java.lang.Exception (2)執行期異常:Java.lang.RuntimeException (3)
“JAVA之父”也逃不過年齡歧視,普通程式設計師還能怎麼辦?
他在卡內基梅隆大學攻讀計算機博士學位時,他編寫了多處理器版本的Unix作業系統,是JAVA程式語言的創始人,他就是詹姆斯·高斯林。 隨著網際網路的普及,Java成為全球流行的開發語言。年過花甲的Java之父在Facebook上發表了他所遭遇的年齡歧視。 他曾在面試的時候被HR告知,“通
JAVA之字串轉換成首字母大寫,其餘小寫
package yu;public class Main {public static void main(String[] args) {String str="abcdefgHIJK";//定義一串字元String str1=str.substring(0, 1).toU
Java之尋找1-10000以內的質數,速度大比拼
方法一:兩次的for迴圈中,i%j跟j的每個數值進行了比較,速度很慢 package com.huaxin; public class TestPrimeNum { public static void main(String[] args){ //方法一
java異常之執行時異常和非執行時異常
RuntimeException RunntimeException的子類: ClassCastException 多型中,可以使用Instanceof 判斷,進行規避
李愬雪夜襲蔡州:挽救唐朝國祚的關鍵之戰(先示弱於敵軍,對降將攻心為上、以誠待人,然後逐步收集情報,最後出奇兵奇襲。但出奇兵也要有預案,否則會被兩面夾擊。做一件事情真不容易)
嚴重 答案 發現 指揮 主力 否則 持久 感恩 十月 元和十年(815年)六月 宰相武元衡遇刺後,唐憲宗任命裴度為宰相,讓他繼續挑起平定淮西的重擔。 裴度對憲宗說:“淮西是朝廷的心腹之疾,不能不除;而且朝廷既已出兵,兩河藩鎮都在密切關註事態的發展,以決定他們的
Java之請求傳送工具類(HttpClientUtils,爬蟲)-yellowcong
Java傳送請求,之前做過一段時間的爬蟲,所以寫了這個請求傳送的工具,這個工具偽裝成百度,然後去爬取推酷的資料,當時是由於推酷有ip訪問限制,你如果是爬蟲,就不讓訪問了,所以我偽裝成了百度,然後就可以隨便爬取推庫的資料了,當時爬了1GB多的文字資料,然後圖
java受檢異常與執行時異常
正確運用異常處理機制,有助於提高程式的健壯性。 所謂程式的健壯性,就是指程式在多數情況下能夠正常執行,返回預期的正確結果;如果偶爾遇到異常情況,程式也能採取周到的解決措施。 受檢查異常表示程式可以處理的異常,如果丟擲異常的方法本身不能處理它,那麼方法呼叫者
python基礎--異常,對象和叠代器
代碼 error: cto not 中一 val tex .cn data- 異常處理 面向對象 叠代器和生成器 python異常處理 下面代碼觸發了一個FileNotFoundError >>> open("notexist