賈文瀟,鄧俊杰(武昌理工學(xué)院信息工程學(xué)院,430063)
?
Java Web應(yīng)用中常見的錯(cuò)誤和異常問題處理
賈文瀟,鄧俊杰
(武昌理工學(xué)院信息工程學(xué)院,430063)
摘要:Java Web指的是基于Java技術(shù)解決互聯(lián)網(wǎng)Web端的技術(shù),Web由服務(wù)器和客戶端兩部分組成。由于Java Web采用分層思想,在降低軟件耦合性的同時(shí)增強(qiáng)了其內(nèi)聚性,但是另一方面卻使整個(gè)軟件開發(fā)工作顯得復(fù)雜并容易出現(xiàn)運(yùn)行錯(cuò)誤。所以錯(cuò)誤和異常問題處理是Java語言的重要機(jī)制,正確、合理地處理對電腦有著極為重要的作用。進(jìn)行相應(yīng)的錯(cuò)誤和異常問題處理架構(gòu)模型的構(gòu)建式很重要的,本文圍繞Java Web應(yīng)用中錯(cuò)誤和異常問題處理,通過對其架構(gòu)、處理原則、異常處理與實(shí)現(xiàn)進(jìn)行分析和說明。
關(guān)鍵詞:Java Web應(yīng)用;錯(cuò)誤和異常;問題處理
傳統(tǒng)的Java Web應(yīng)用一般采用的是多層架構(gòu),即軟件結(jié)構(gòu)中的分層思想。這種架構(gòu)的軟件內(nèi)聚性加強(qiáng)、耦合性降低,但是分層增加了軟件開發(fā)的重復(fù)性工作,使應(yīng)用變得更加復(fù)雜,從而產(chǎn)生一些不必要的錯(cuò)誤。Java Web應(yīng)用業(yè)務(wù)的復(fù)雜性會使編程產(chǎn)生一些不必要的錯(cuò)誤和異常問題,給系統(tǒng)的調(diào)試帶來不必要的麻煩。針對這些問題,本文在Java Web異常機(jī)制上建立一個(gè)錯(cuò)誤和異常處理模型,對異常和錯(cuò)誤進(jìn)行統(tǒng)一的管理,提高程序的可讀性、可維護(hù)性、可修改性和魯棒性等技術(shù)性指標(biāo)。
處理Java Web應(yīng)用中常見的錯(cuò)誤和異常問題,前提是需要明確Java Web的架構(gòu)原理和其設(shè)計(jì)理念,只有這樣才能夠找出錯(cuò)誤和異常問題的出現(xiàn)根源,并進(jìn)行相關(guān)的設(shè)計(jì),從而提高處理問題的效率。
首先要明確Java Web的概念:一種基于Java技術(shù)的Web端口的技術(shù)綜合。Java是應(yīng)用最廣泛的跨平臺開發(fā)語言,而Web端共包括服務(wù)器和客戶端兩部分。Java Web就是用來解決Web問題的技術(shù),一般情況下Java Web的應(yīng)用是很廣泛的,Java技術(shù)的應(yīng)用讓W(xué)eb開發(fā)有了巨大的發(fā)展。好的Java Web軟件體系結(jié)構(gòu)是多層的,層次越多程序之間的耦合度越低、內(nèi)聚性越強(qiáng),同時(shí)出現(xiàn)也會變得更加復(fù)雜。本文在Java錯(cuò)誤與異常問題機(jī)制的基礎(chǔ)上構(gòu)建了一個(gè)Java Web應(yīng)用中錯(cuò)誤與異常問題處理的框架模型,該模型采用最常見的軟件三層體系結(jié)構(gòu),即Java Web三層結(jié)構(gòu)模型。
2.1 Java Web錯(cuò)誤與異常處理原則
本文采用拋出自定義類型的異常的錯(cuò)誤處理方式,便于對錯(cuò)誤和異常進(jìn)行統(tǒng)一的管理,從而提高Java Web應(yīng)用程序的利用性。Java Web中產(chǎn)生的異常都是繼承Exception,并且一般采用三層或多層的架構(gòu)。程序員不必逐層的處理各層中的錯(cuò)誤和異常,要運(yùn)用相應(yīng)的措施將異常封裝成為Checked Exciption類型,并從實(shí)際的應(yīng)用程序出發(fā)??偟膩碚f,就是子啊進(jìn)行錯(cuò)誤和異常處理時(shí),要菜哦也難怪自定義類型異常拋出和統(tǒng)一管理的原則,充分提高程序的可行性的同時(shí)還要提高軟件的適用性。
2.2 Java Web錯(cuò)誤與異常處理策略
Java程序中會發(fā)生很多錯(cuò)誤,本文采用的錯(cuò)誤處理策略是當(dāng)錯(cuò)誤發(fā)生時(shí),要將錯(cuò)誤和錯(cuò)誤發(fā)生時(shí)轉(zhuǎn)向的頁面封裝成一個(gè)異常對象并將其拋出,并集中到一起進(jìn)行統(tǒng)一處理。運(yùn)行中的程序發(fā)生錯(cuò)誤就會拋出一個(gè)詳細(xì)的異常對象,并根據(jù)發(fā)生的異常信息來決定轉(zhuǎn)向的頁,從而避免因采用程序而被忽略的一些信息。同樣出現(xiàn)中也會發(fā)生很多異常,對于如業(yè)務(wù)邏輯錯(cuò)誤、未找到指定文件等異常問題,Web應(yīng)用通常會將這些異常即發(fā)生異常后轉(zhuǎn)向的頁面等信息進(jìn)行對象性封裝、拋出,同時(shí)也會進(jìn)行及時(shí)的處理。這在一定的程度上方便了客戶的使用。
在Java Web的三層架構(gòu)模型中,可以利用Java的多態(tài)性機(jī)制,只要捕獲自定義的基類異常,而具體拋出的異常可以是Basic Exception類的任何子類異常,并使用多態(tài)來實(shí)現(xiàn)隱藏異常的具體的實(shí)現(xiàn)類。在一個(gè)集中的公共位置,使用模板方法TemplateMethod1設(shè)計(jì)模式并結(jié)合Struts的Dispatch Actio編寫一個(gè)模板方法,并在改模板方法中獲取Basic Exception異常,這樣就會捕捉到所有的子類異常。
采取這樣的策略,就不會對持久層中的所有方法都拋出Basic Exception異常進(jìn)行處理,對業(yè)務(wù)邏輯層中的所有方法采用持久層中的策略,同樣不用對異常進(jìn)行處理。采用這種通用的異常傳播機(jī)制,把異常作為一種普通的方式集中到距離客戶端最近的控制器中來處理。書寫異常的模板代碼應(yīng)該避免,利用Struts的DispatchAction的工作機(jī)制來解決問題,同時(shí)結(jié)合模板方法模式重寫模板方法execute,并將異常模板的代碼和處理錯(cuò)誤寫入execute方法中,將具體的、可變的業(yè)務(wù)邏輯控制方法留給子類實(shí)現(xiàn)。這樣處理后每個(gè)Structs的Action只要繼承DispatchAction類就可以自動(dòng)的繼承錯(cuò)誤和異常問題處理代碼,從而節(jié)省大量代碼的編寫。
對Basic Exception類進(jìn)行間接性繼承并根據(jù)實(shí)際需要增加相應(yīng)的錯(cuò)誤和異常種類,這樣就可以對整個(gè)捕獲錯(cuò)誤過程進(jìn)行抽象,并進(jìn)行有效執(zhí)行。在進(jìn)行應(yīng)用模型交互時(shí),可以將這些工作抽象為一個(gè)接口,同時(shí)設(shè)計(jì)其外觀模式,為子系統(tǒng)的接口提供相應(yīng)的外部訪問入口。在進(jìn)行交互之后,在實(shí)際的封裝中對struts的Action代碼進(jìn)行合理精簡,這樣可以同時(shí)減輕程序員的負(fù)擔(dān)和增加程序的可行性。
本文提出了一種Java Web應(yīng)用中常見的錯(cuò)誤和異常問題處理框架模型,并利用軟件三層架構(gòu)思想來實(shí)現(xiàn)該模型的構(gòu)建,這解決了Java Web應(yīng)用中錯(cuò)誤和異常處理中存在的普遍問題。該模型可以將錯(cuò)誤和異常詳細(xì)信息記錄到日志文件中,而且控制器能夠根據(jù)該信息繼而將頁面跳轉(zhuǎn)到制定的網(wǎng)頁上去。本文分析了異常的處理機(jī)制及原則,對異常的處理有著積極的作用,很大程度上提高了系統(tǒng)的安全性和穩(wěn)定性,也提高了程、開發(fā)軟件的效率,有效節(jié)省了人力物力。
參考文獻(xiàn)
[1]印旻,王行言.Java 語言與面向?qū)ο蟪绦蛟O(shè)計(jì)(第2版)[M].北京:清華大學(xué)出版社,2007
[2]王新雨,須文波,柴志雷.Java虛擬機(jī)中異常機(jī)制實(shí)時(shí)性的研究及實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2008
[3]楊厚群,陳靜.Java異常處理機(jī)制的研究[J].計(jì)算機(jī)科學(xué),2007
[4]Bruce Eckel. (美) Java編程思想[M].北京:機(jī)械工業(yè)出版社,2005
[5]張?zhí)?在線考試系統(tǒng)異常處理框架的涉及與實(shí)現(xiàn)[J].蘭州工業(yè)高等??茖W(xué)校學(xué)報(bào),2008
Common errors and exception handling in Web Java applications
Jia Wenxiao,Deng Junjie
(Wuchang University of Technology Information and Engineering School,430063)
Abstract:Java Web refers to solve the Internet on the Web technology based on Java technology,the Web consists of two parts,the server and client.Because of using Java Web layered thought in reducing software coupling at the same time to enhance the internal cohesion,but on the other hand,makes the entire software development work are complex and prone to error.So wrong and exception handling is the important mechanism of the Java language,correct and reasonable treatment on computer has a very important role.Corresponding error and abnormal problems processing architecture model of building type is very important,this article around the Java Web application error and abnormal problems in processing, through to its architecture, principles of management, exception handling, and carries on the analysis and explanation.
Keywords:Java Web applications;Errors and exceptions;Problem processing