2020-05-03 分類: 網(wǎng)站建設
假設在一個Java程序運行期間出現(xiàn)了一個錯誤。這個錯誤可能是由于文件包含了錯誤的信息,或者網(wǎng)絡連接出現(xiàn)問題造成的,也有可能是因為使用無效的數(shù)組下標,或者試圖使用一個沒有被賦值引用而造成的。用戶期望在出現(xiàn)錯誤時,程序能夠采用一些理智的行為,如果由于出現(xiàn)錯誤而使得某些操作沒有完成,程序應該:返回到一種安全狀態(tài),并能夠讓用戶執(zhí)行一些其他的命令;或者允許用戶保存所有操作的結(jié)果,并以適當?shù)姆绞浇K止程序。
要做到這些并不是一件很容易的事情。其原因是檢測(或引發(fā))錯誤條件的代碼通常離那些能夠讓數(shù)據(jù)恢復到安全狀態(tài),或者能夠保存用戶的操作結(jié)果,并正常地退出程序的代碼很遠。異常處理的任務就是將控制權(quán)從錯誤產(chǎn)生的地方轉(zhuǎn)移給能夠處理這種情況的錯誤處理器。為了能夠在程序中處理異常情況,必須研究程序中可能會出現(xiàn)的錯誤和問題,以及哪類問題需要關(guān)注。
1.設備錯誤
硬件并不總是讓它做什么,它就做什么。打印機可能被關(guān)掉了。網(wǎng)頁可能臨時性地不能瀏覽。在一個任務的處理過程中,硬件經(jīng)常出現(xiàn)問題。例如,打印機在打印過程中可能沒有紙了。
2.代碼錯誤
程序方法有可能無法正確的執(zhí)行。例如,方法可能返回了一個錯誤的答案,或者錯誤地調(diào)用了其他方法。使用了一個無效的數(shù)組下標,試圖查找一個在散列表中不存在的數(shù)據(jù)項以及試圖對一個空棧進行退棧操作。
3.用戶輸入錯誤
除了那些不可避免的打字錄入外,有些用戶喜歡各行其是,不遵守程序的要求。例如,假設有一個用戶請求連接一個URL,而語法卻不正確。在程序代碼中應該對此進行檢查,如果沒有檢查,網(wǎng)絡數(shù)據(jù)包就會給出警告。
4.物理限制
磁盤滿了,可用存儲空間已被用完。
對于方法中出現(xiàn)的錯誤,傳統(tǒng)的處理方式是返回一個特定的錯誤編碼,調(diào)用這個方法的方法對其進行分析。例如,對于一個從文件中讀取信息的方法來說,如果返回值不是標準字符,而是一個-1,則表示文件結(jié)束。這種處理方式對于很多異常狀況都是可行的。還有一種表示錯誤狀況的常用返回值是null引用。當希望查詢的參數(shù)不存在時,這個方法就會返回null。
遺憾的是,并不是在任何情況下都能夠返回一個錯誤編碼。有可能無法明確地將有效數(shù)據(jù)與無效數(shù)據(jù)加以區(qū)分。一個返回整型的方法就不能簡單地通過返回-1表示錯誤,因為-1很可能是一個完全合法的結(jié)果。
在Java中,如果某個方法不能夠采用正常的途徑完整它的任務,就可以通過另外一個路徑退出方法。在這種情況下,方法并不返回任何值,而是拋出(throw)一個封裝了錯誤信息的對象。需要注意的是,這個方法將會立刻退出,并不返回任何值。此外,調(diào)用這個方法的代碼也將無法繼續(xù)執(zhí)行,而是,異常處理機制開始搜索能夠處理這種異常狀況的異常處理器(exceptionhandler),異常具有自己的語法和特定的繼承結(jié)構(gòu)。
網(wǎng)頁題目:網(wǎng)站需要怎么處理網(wǎng)站異常
文章URL:http://www.rwnh.cn/news/82091.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、Google、外貿(mào)網(wǎng)站建設、網(wǎng)站排名、移動網(wǎng)站建設、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容