軟體構造查漏補缺

2021-10-08 00:26:02 字數 901 閱讀 2362

異常處理

異常:程式執行中的非正常事件,程式無法再按預想的流程執行,將錯誤資訊傳遞給上層呼叫者,並報告「案發現場」的資訊

異常的種類:

1.執行時異常:由程式設計師在**裡處理不當造成

2.其他異常:由外部原因造成

異常處理:必須在方法的spec中明確寫清本方法會丟擲的所有checked exception, 以便於呼叫該方法的client加以處理

子型別異常處理規範:(lsp)

1.如果子型別中override了父型別中的函式,那麼子型別中方法丟擲的異常不能比父型別丟擲的異常型別更寬泛

2.子型別方法可以丟擲更具體的異常,也可以不丟擲任何異常

3.如果父型別的方法未丟擲異常,那麼子型別的方法也不能丟擲異常。

斷言assertions

斷言:在開發階段的**中嵌入,檢驗某些「假設」是否成立。若成立,表明程式執行正常,否則表明存在錯誤。出現assertionerror,意味著內部某些假設被違反了

斷言可檢測情況:內部不變數、表示不變數、控制流不變數、方法的前置條件、方法的後置條件

斷言用於絕不應該發生的情況,而異常處理用於可預料到的非正常情況。

提高健壯性和正確性

1.健壯性安全性程式設計。(斷言,防禦性程式設計,**審查,形式驗證)

2.發現failure的症狀(資訊轉儲,棧追蹤,執行日誌,測試)

3.找出潛在fault(debug,bug定位)

4.修復errors

DOM查漏補缺

使用getattribute 方法只能獲取屬性的文字內容,比如script或者style就不方便了,因此建議使用屬性的方法來獲取,即elenode.attr這種形式 但是自定義的標籤屬性必須使用getattribute 方法來獲得。屬性的方法會返回undefined 修改class通過屬性名的方法是...

CSS查漏補缺

從父類繼承 padding inherit 字母大寫 小寫,首字母大寫 h1 h2 credits 字母 漢字間距 letter spacing 0.2em 文字對齊方向 text align right 鏈結下劃線aa hover 首字母 首行 p.intro first letter p.int...

查漏補缺 1

1.alert 用來顯示一段文字。不是文字強制轉換為文字。2.sort 排序,原理是根據unicode進行排序,可接受乙個比較函式。比較函式 function compare a,b else if a b else var values 0,5,10,5,65 values.sort compar...