flutter foundation的assertions

這個模塊的源碼和diagnostics文件里源碼關系非常密切,這個文件里源碼有1000多行。

接下來會對每個類的進行解析,如有不足之處晴裹,可以在下面評論指出。

第一部分說的一些類在assertions文件里比較獨立救赐,第二部分的內容就和diagnostics非常密切涧团。

第一部分:

  1. PartialStackFrame這個類相比StackFrame, 就簡單很多,也就很容易理解為什么有Partial(部分的)這個前綴经磅。這個類只有三個屬性:package泌绣,className和method。還有一個matches方法预厌,傳入的參數是StackFrame類型的阿迈,主要是通過package,className和method屬性的值與StackFrame類型的傳入參數對應的屬性值是否相等來判斷是后匹配轧叽。
  2. StackFilter這個是一個抽象類苗沧,主要就是一個filter抽象方法,在棧幀(StackFrame)列表(list)中過濾出一些匹配棧幀片段(StackFrame), 這些片段也是list類型的炭晒。
  3. RepetitiveStackFrameFilter這個類繼承了StackFilter待逞,從它的名字再結合代碼就可以知道它的主要任務是從一個大的StackFrame類型的list里匹配PartialStackFrame類型的小的list,其中具體是否匹配就是通過第一條PartialStackFrame中matches方法實現的网严。該類的filter和_matchesFrames方法還是很好理解的识樱,就不再贅述了。

第二部分:

  1. _ErrorDiagnostic繼承了DiagnosticsProperty, 內部實現還是很簡單的,就難在DiagnosticsProperty的理解上怜庸,點開鏈接就能看到對DiagnosticsProperty的解讀当犯。
  2. ErrorDescription繼承了_ErrorDiagnostic,只是定義了這個類的level的值是DiagnosticLevel.info割疾。
  3. ErrorSummary繼承了_ErrorDiagnostic嚎卫,也只是定義了這個類的level的值是DiagnosticLevel.summary。
  4. ErrorHint繼承了_ErrorDiagnostic宏榕,也只是定義了這個類的level的值是DiagnosticLevel.hint拓诸。
  5. ErrorSpacer繼承自DiagnosticsProperty,其實就是創(chuàng)建了一個空的DiagnosticsNode的類担扑,可以用來調整DiagnosticsNode對象間的距離的。
  6. FlutterErrorDetails這個類混合了(with)Diagnosticable趣钱,主要作用是FlutterExceptionHandler回調的參數類型涌献,這個類的形參除了exception不能為null,其他的都可以是默認值首有。這個類有很多屬性propertiesTransformers, exception, stack, library, context, stackFilter, informationCollector, silent燕垃。需要先明白diagnostics的內部實現,就能很清晰的知道內部邏輯井联。
  7. _FlutterErrorDetailsNode這個內部類是繼承DiagnosticableNode的卜壕,只有一個builder的get方法。
  8. DiagnosticsStackTrace這個類是繼承DiagnosticsBlock烙常,這個類的內部實現是封建的轴捎,只有一些初始化的方式。

這是flutter框架源碼分析的其中一篇蚕脏,因能力有限侦副,有諸多不足之處,還請斧正驼鞭。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末秦驯,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子挣棕,更是在濱河造成了極大的恐慌译隘,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洛心,死亡現場離奇詭異固耘,居然都是意外死亡,警方通過查閱死者的電腦和手機词身,發(fā)現死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門玻驻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事璧瞬』П瑁” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵嗤锉,是天一觀的道長渔欢。 經常有香客問我,道長瘟忱,這世上最難降的妖魔是什么奥额? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮访诱,結果婚禮上垫挨,老公的妹妹穿的比我還像新娘。我一直安慰自己触菜,他們只是感情好九榔,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著涡相,像睡著了一般哲泊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上催蝗,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天切威,我揣著相機與錄音,去河邊找鬼丙号。 笑死先朦,一個胖子當著我的面吹牛,可吹牛的內容都是我干的犬缨。 我是一名探鬼主播烙无,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼遍尺!你這毒婦竟也來了截酷?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤乾戏,失蹤者是張志新(化名)和其女友劉穎迂苛,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體鼓择,經...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡三幻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了呐能。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片念搬。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡抑堡,死狀恐怖,靈堂內的尸體忽然破棺而出朗徊,到底是詐尸還是另有隱情首妖,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布爷恳,位于F島的核電站有缆,受9級特大地震影響,放射性物質發(fā)生泄漏温亲。R本人自食惡果不足惜棚壁,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栈虚。 院中可真熱鬧袖外,春花似錦、人聲如沸魂务。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽头镊。三九已至蚣驼,卻和暖如春魄幕,著一層夾襖步出監(jiān)牢的瞬間相艇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工纯陨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留坛芽,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓翼抠,卻偏偏與公主長得像咙轩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子阴颖,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349