異常的侷限性

2021-08-29 21:13:29 字數 643 閱讀 9276

異常的侷限性:當你覆寫(override)某個函式,你只能夠丟擲它在base class 中明白列出(列於異常說明)的異常。這是乙個很好的限制,這意味著在base class上執行的程式**(包括異常)都能自動地在所有衍生的class objects身上執行。

p403異常身上被加諸的束縛,在建構函式身上並不存在。無論基類建構函式究竟擲出什麼,derived class 可以丟擲任何他想擲出的異常。不過由於base class 建構函式總是必須以某種方式喚起,derived class的建構函式必須在自己的異常說明中宣告所有base class建構函式所宣告的異常。

derived class 中的函式遵守base class函式的異常宣告,才能維護物件的可替代性。

即使base class函式擲出異常,該函式的derived class 版本仍有可能選擇不擲出異常。

如果你處理的是乙個derived class 物件,編譯器會強迫你只能捕捉剛好符合該class所規定的異常。但如果你將物件向上轉型為基本型別,編譯器就會強迫你捕捉基本型別所規範的異常。

**某個函式的「異常說明介面」在繼承和過載過程中可能變窄,不可能變寬。

處理異常時需考量的設計議題之一,便是決定究竟在目前這一層完全處理掉異常、或只是區域性處理然後將同乙個(或另乙個)異常傳遞出去、抑或是將異常徑自傳遞出去。

時代侷限性

時代侷限性的 什麼是時代侷限性?根本原因是理性能力的有限性。一般而言,我們能對問題提出具有一定一般性的解釋並經過一些檢驗,這樣的知識獲取就可以算作理性推知了。至少包括 能理清邏輯 確立因果的解釋是稀有的。不經過思考屬於迷信權威。主要指實踐中的試錯成分。試錯得到的結果有可能缺乏可解釋性。一味堅持過去實...

SQLite的侷限性

sql 92特性方面 正如前面提到的,sqlite不支援sql 92的在很多企業資料庫系統中可用的一些特性。如 外來鍵約束 可解析的,但非強制 很多alter table特性 一些trigger相關的特性 right和full outer join 更新乙個view grant和revoke 你可以...

SQLite的侷限性

sqlite和其他大部分現代sql資料庫在基本設計目標上是不同的,它的目標是簡單。sqlite遵循這一目標,即使這樣偶爾會導致某些特性實現的低效化。下面列舉了sqlite的一些缺陷 sql 92特性方面 正如前面提到的,sqlite不支援sql 92的在很多企業資料庫系統中可用的一些特性。如 外來鍵...