異常Exception 有分為自定義異常和系統(tǒng)默認(rèn)定義的異常。在每個(gè)項(xiàng)目中都會(huì)有異常的自定義模塊徘铝。自定義的異常錯(cuò)誤丰滑,返回的json 數(shù)據(jù)格式。異常有異常調(diào)用鏈腺劣,處理異常和對(duì)外拋出異常绿贞。
編譯時(shí)異常和運(yùn)行異常又是有區(qū)分。項(xiàng)目組有的時(shí)候需要程序員自定義異常橘原,注解也是需要手動(dòng)開發(fā)籍铁。異常EXCEPTION和錯(cuò)誤ERROR有差距。異常是說明這里某處有錯(cuò)誤趾断,可以進(jìn)行預(yù)防處理操作拒名。錯(cuò)誤是不能修復(fù)的重大失誤,級(jí)別不一樣歼冰。不同的定義級(jí)別靡狞,有info, debug,
Warning, exception, error. 程序輸出信息不同的錯(cuò)誤級(jí)別耻警,會(huì)有不同的日志輸出隔嫡。線上和線下的程序日志信息輸出,操作方式不一樣甘穿。
線上的日志信息處理經(jīng)驗(yàn)隨著不同的工作開發(fā)級(jí)別不同腮恩。測(cè)試有測(cè)試的錯(cuò)誤日志信息異常,開發(fā)的控制臺(tái)主要是使用集成開發(fā)環(huán)境輸出異常信息温兼。編程開發(fā)離不開算法的調(diào)試秸滴,調(diào)試debug 是在每一行的運(yùn)行代碼的邏輯處理方面查找程序開發(fā)漏洞。異常調(diào)用鏈在分為編譯時(shí)調(diào)用處理方式和運(yùn)行的異常調(diào)用鏈處理方式募判。
調(diào)用鏈異常拋出可以把異常拋出到上一級(jí)程序的代碼的調(diào)用方荡含。程序拋出是throws, 還有一種異常的處理方式是把異常交付給虛擬機(jī)進(jìn)行托管。虛擬機(jī)是Java特有的程序運(yùn)行平臺(tái)届垫,Java 開發(fā)伴隨生長的jvm 功能強(qiáng)大释液,可以管理 異常 exception 的運(yùn)行生命周期。編譯時(shí)異常是系統(tǒng)自定義的異常處理類装处。
約定大于配置误债。程序大佬打磨出來的自定義的程序組件是有很多的默認(rèn)自定義的參數(shù)信息。有些默認(rèn)的異常是可以使用集成開發(fā)環(huán)境自動(dòng)檢測(cè)處理。IOECEPTION, FILENOTFONDEXCEPTION, 等等寝蹈。文件處理類處理文件讀寫的時(shí)候會(huì)發(fā)生文件的讀寫異常李命,或者是文件的非找到異常。程序的一些靜態(tài)異常是可以預(yù)知處理箫老,稱之為編譯時(shí)異常封字。Ide集成開發(fā)環(huán)境,或者是eclipse 配置jdk耍鬓,jre 之后都是可以自動(dòng)提供類似的編譯時(shí)間異常類庫周叮。
異常的調(diào)用鏈不宜過長。變量對(duì)象的作用域限制在最小的作用域之內(nèi)界斜。最頂層的異常調(diào)用方是主線程仿耽,系統(tǒng)默認(rèn)會(huì)自動(dòng)處理。異常的調(diào)用鏈過程是增加系統(tǒng)代碼的復(fù)雜度各薇。使用虛擬機(jī)托管的方式项贺,比如運(yùn)行時(shí)間異常 runtimeexception. 異常提供自定義的異常錯(cuò)誤信息最好,友善的異常提示有利于代碼的調(diào)試調(diào)優(yōu)峭判。程序員喜歡可讀性好的代碼开缎。