【摘 要】高校檔案管理的信息化工作已經(jīng)是高校信息化建設(shè)的核心系統(tǒng),檔案管理系統(tǒng)中的異常處理模塊是系統(tǒng)設(shè)計(jì)時(shí)的核心功能模塊,合理的設(shè)計(jì)該模塊可以有效提高信息化管理系統(tǒng)開發(fā)效率和增加系統(tǒng)的可靠性。
【關(guān)鍵詞】高校檔案管理;J2EE;異常管理
在高校信息化建設(shè)工程之中,檔案管理系統(tǒng)是非常重要的組成部分,高校檔案管理系統(tǒng)由于所涉及部門較多,故是一套相對復(fù)雜的業(yè)務(wù)系統(tǒng),系統(tǒng)的異常處理將是系統(tǒng)開發(fā)中的重點(diǎn)模塊,合理的設(shè)計(jì)異常處理功能可以有效的增強(qiáng)系統(tǒng)的健壯性。在目前基于J2EE的業(yè)務(wù)系統(tǒng)中所提供的Exception架構(gòu)可以非常方便的完成業(yè)務(wù)系統(tǒng)的異常處理,但是該處理方式僅僅提供了一種最為原始的操作方式,對用戶操作級(jí)別的錯(cuò)誤提示卻沒有提供直接的解決方案。所以必須在Java異常處理的機(jī)制上提出一種新的異常處理的模式,通過該模式可以實(shí)現(xiàn)在檔案管理系統(tǒng)中各種級(jí)別的異常處理
一、高校檔案管理分析
高校檔案是高校中部門和個(gè)人在工作中直接形成的具有保存價(jià)值的文字、圖表、音像及其他各種形式和載體的歷史記錄。由于高校檔案管理工作設(shè)計(jì)到大量的數(shù)據(jù)存儲(chǔ)、檢索。并且對數(shù)據(jù)的檢索有較高的效率方面的需求,所以基于信息化的手段來進(jìn)行高校的檔案管理是迫在眉睫的一件事情。但是在信息化管理中不可避免的會(huì)存在相應(yīng)的安全性需求,日志管理是信息化系統(tǒng)中提高安全性的一種主要手段。
二、高校檔案系統(tǒng)中異常處理分析
(一)目前常規(guī)的多層體系結(jié)構(gòu)
高校檔案管理系統(tǒng)是一個(gè)綜合性的信息管理系統(tǒng),基于B/S架構(gòu)的業(yè)務(wù)系統(tǒng)已經(jīng)是當(dāng)今最為主流的架構(gòu)。分層體系設(shè)計(jì)已經(jīng)此類系統(tǒng)中必不可少的組成部分,軟件的分層體系架構(gòu)是提高業(yè)務(wù)系統(tǒng)可靠性、維護(hù)性和管理性的主要設(shè)計(jì)方式。目前J2EE技術(shù)可以很好的配合分層分層設(shè)計(jì)已經(jīng)目前信息系統(tǒng)中必不可少的組成部分。當(dāng)今四層體系結(jié)構(gòu)是最為流行的分層結(jié)構(gòu),整個(gè)軟件系統(tǒng)會(huì)分為表示層、業(yè)務(wù)層、持久化層和數(shù)據(jù)層,數(shù)據(jù)層用于存儲(chǔ)業(yè)務(wù)對象數(shù)據(jù)、持久化層負(fù)責(zé)將業(yè)務(wù)對象存儲(chǔ)到關(guān)系數(shù)據(jù)庫中,業(yè)務(wù)層負(fù)責(zé)處理系統(tǒng)的業(yè)務(wù)邏輯,表示層用于接收用戶的請求并且將處理結(jié)果回饋給用戶。軟件的分層體系結(jié)構(gòu)保證了軟件的可靠性、維護(hù)性和管理性。基于Java語言的J2EE技術(shù)可以很好的配合分層層模式進(jìn)行系統(tǒng)的設(shè)計(jì)和開發(fā)。
(二)異常處理需求分析
在分層設(shè)體系架構(gòu)中,異常處理在每個(gè)層都會(huì)有所涉及,主要會(huì)涉及到兩個(gè)方面:一方面是在實(shí)際開發(fā)過程之中代碼編寫異常,每套業(yè)務(wù)系統(tǒng)都不可能避免所有的異常,只能盡可能把異常信息進(jìn)行展示和存儲(chǔ);另外一個(gè)方面是用戶進(jìn)行了一些非正常性操作之后,給用戶的異常提示。前者幫助開發(fā)人員進(jìn)行開發(fā)和測試,后者是在軟件使用過程中為用戶提供操作輔助。所以在軟件系統(tǒng)的開發(fā)中必須為不同的異常提供不同的實(shí)現(xiàn)和展示機(jī)制。
(三)J2EE的異常處理機(jī)制
在 Java 應(yīng)用程序中,異常處理機(jī)制為:拋出異常,捕捉異常。拋出異常指當(dāng)一個(gè)方法出現(xiàn)錯(cuò)誤引發(fā)異常時(shí),方法創(chuàng)建異常對象并交付運(yùn)行時(shí)系統(tǒng),異常對象中包含了異常類型和異常出現(xiàn)時(shí)的程序狀態(tài)等異常信息。運(yùn)行時(shí)系統(tǒng)負(fù)責(zé)尋找處置異常的代碼并執(zhí)行。捕獲異常指在方法拋出異常之后,運(yùn)行時(shí)系統(tǒng)將轉(zhuǎn)為尋找合適的異常處理器。潛在的異常處理器是異常發(fā)生時(shí)依次存留在調(diào)用棧中的方法的集合。當(dāng)異常處理器所能處理的異常類型與方法拋出的異常類型相符時(shí),即為合適 的異常處理器。運(yùn)行時(shí)系統(tǒng)從發(fā)生異常的方法開始,依次回查調(diào)用棧中的方法,直至找到含有合適異常處理器的方法并執(zhí)行。當(dāng)運(yùn)行時(shí)系統(tǒng)遍歷調(diào)用棧而未找到合適 的異常處理器,則運(yùn)行時(shí)系統(tǒng)終止。
Java把異常當(dāng)作對象來處理,Thorwable類是所有異常和錯(cuò)誤的超類,有兩個(gè)子類Error和Exception,分別表示錯(cuò)誤和異常。其中異常類Exception又分為運(yùn)行時(shí)異常(RuntimeException)和非運(yùn)行時(shí)異常,這兩種異常有很大的區(qū)別,運(yùn)行時(shí)異常程序人員不用進(jìn)行檢查,JVM會(huì)自動(dòng)拋出,但是非運(yùn)行時(shí)異常需要程序人員進(jìn)行處理,如果不處理程序?qū)o法編譯通過。Exception:是程序本身可以處理的異常。 Exception 類有一個(gè)重要的子類 RuntimeException。RuntimeException不用開發(fā)人員手動(dòng)處理。系統(tǒng)會(huì)自動(dòng)將異常信息拋出到上一個(gè)級(jí)別;非RuntimeException的異常需要開發(fā)人員手動(dòng)進(jìn)行捕獲和處理。
三、高校檔案管理中異常處理的設(shè)計(jì)
在高校檔案管理信息系統(tǒng)中,對于代碼的編寫異常而言不用展現(xiàn)給用戶,該類異常的作用是提供給開發(fā)人員調(diào)試使用,所以只用通過相應(yīng)的日志管理工具將信息進(jìn)行保存,并且提供相應(yīng)的遠(yuǎn)程訪問功能,讓開發(fā)人員能夠及時(shí)的發(fā)現(xiàn),并且修正這些錯(cuò)誤。此類異常的處理方式是在業(yè)務(wù)層統(tǒng)一繼承于一個(gè)基類,在這個(gè)基類中統(tǒng)計(jì)捕獲所以異常,并且將異常存儲(chǔ)到日志中,一些致命的錯(cuò)誤也可以存儲(chǔ)到關(guān)系型的數(shù)據(jù)庫中,方便進(jìn)行快速檢索對于用戶操作錯(cuò)誤需要定義一個(gè)專門的異常處理類FileException,通過該類來集中捕獲并處理用戶操作錯(cuò)誤。FileException類型的異常將會(huì)自動(dòng)拋出到表示層統(tǒng)一處理,同時(shí)FileException需要繼承于RuntimeException。為了解決異常信息的國際化問題,還需為FileException類增加兩個(gè)屬性:errorCode和values,通過這兩個(gè)屬性可以實(shí)現(xiàn)異常代碼和國際化錯(cuò)誤信息文件的對應(yīng)。當(dāng)FileException拋出到表示層之后,為Struts2設(shè)定相應(yīng)的異常攔截器專門攔截FileException,并且將攔截到的結(jié)果統(tǒng)一定位到相應(yīng)的頁面統(tǒng)一進(jìn)行處理。
四、高校檔案管理中異常處理的實(shí)現(xiàn)
以下使用用戶管理模塊來模擬整個(gè)異常處理的機(jī)制,首先定義一個(gè)FileException類,這個(gè)類繼承于RuntimeException,并且為這兩個(gè)增加兩個(gè)屬性errorCode和values,用來進(jìn)行國際化的操作。
public class FileException extends RuntimeException {
private String errorCode;//存儲(chǔ)異常信息的代碼,用來實(shí)現(xiàn)國際化
private String[] values;//存儲(chǔ)相應(yīng)的提示信息中的變量
............
}
為用戶模塊創(chuàng)建一個(gè)接口,IUserService,該接口中創(chuàng)建login方法,login方法的流程如下:首先調(diào)用UserDAO中的方法通過username獲取用戶對象,如果該對象為空,不返回任何值,而是拋出FileException,如果用戶對象不為空就把用戶密碼取出來進(jìn)行比較,如果密碼不正確同樣拋出異常,在異常的values中說明用戶名密碼不正確。如果用戶名和密碼都正確就返回查詢出來的用戶對象。這個(gè)用戶對象用于在表示層存儲(chǔ)在session中,用來處理狀態(tài)。
當(dāng)用戶登錄之后,controller會(huì)調(diào)用userService的方法,此時(shí)如果返回一個(gè)用戶對象就說明登錄成功,然后將這個(gè)用戶對象存儲(chǔ)到session中,用于進(jìn)行狀態(tài)的控制,如果登錄失敗就會(huì)拋出FileException,在controller層中通過攔截器獲取統(tǒng)一轉(zhuǎn)到一個(gè)錯(cuò)誤的處理視圖中顯示這個(gè)錯(cuò)誤。
五、總結(jié)
通過對java異常處理機(jī)制的變形和封裝,加之Spring MVC的異常攔截器的運(yùn)用,可以為招就信息系統(tǒng)提供一個(gè)錯(cuò)誤處理的統(tǒng)一解決方案。目前基于B/S結(jié)構(gòu)的主流開發(fā)語言(.NET,Ruby)在開發(fā)相應(yīng)的MIS系統(tǒng)中都是使用MVC作為開發(fā)框架,并且異常處理方式也基本統(tǒng)一,所以此異常處理的方式和框架可以平滑的過渡到其他的開發(fā)語言中,使基于B/S結(jié)構(gòu)的MIS項(xiàng)目的錯(cuò)誤管理更加的可控和可維護(hù)。
參考文獻(xiàn):
[1]劉秀敏,魏翠萍.面向?qū)ο蟪绦蛟O(shè)計(jì)的教學(xué)問題探討[J].河北廣播電視大學(xué)學(xué)報(bào). 2009(02)
[2]孔浩著.高校學(xué)生管理系統(tǒng)新型模式的研發(fā)與探究[J].昭通師專學(xué)報(bào)2007年第5期
[3]孫衛(wèi)琴,李洪成.Tomca t 與 Java W e b 開發(fā)技術(shù)詳解[ M ].北京: 電子工業(yè)出版社, 2004
[4]西爾伯沙茨著,楊冬青譯.數(shù)據(jù)庫系統(tǒng)概念[M].北京:機(jī)械工業(yè)出版社.2012.3
[5]艾里特著,劉平利譯. 精通hibernate.[M]北京:機(jī)械工業(yè)出版社.2009.3
省級(jí)科研基金項(xiàng)目,基金編號(hào):2012Y437
作者簡介:
1、張子鋒,(1985.01),男(漢族),河南淮濱人,碩士,助教,教育技術(shù)學(xué)。
2、劉崇富(1967.10),男(漢族),云南昭通人,本科,檔案館員,主要從事學(xué)生檔案管理方面研究。