亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于類文件的Java程序運(yùn)行時(shí)異常分析技術(shù)

        2014-04-29 00:00:00苑隆寅

        摘 要:本文對(duì)類文件之中Java程序運(yùn)行階段的異常進(jìn)行了分析。其可以通過無Java源代碼文件的條件之下,直接實(shí)現(xiàn)類文件的處理。異常跟普通的警告等有一定的區(qū)別。當(dāng)應(yīng)用程序發(fā)生異常時(shí),會(huì)自動(dòng)進(jìn)行錯(cuò)誤源代碼的跟蹤并加以提示,進(jìn)而提升技術(shù)人員調(diào)試及開發(fā)的能力。

        關(guān)鍵詞:Java類文件;運(yùn)行異常;依賴分析

        中圖分類號(hào):TP312.1

        Java是種能夠撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由Sun Microsystems公司在1995年5月推廣的Java程序設(shè)計(jì)語言及Java平臺(tái),也就是JavaEE,JavaME及JavaSE的總稱。Java自創(chuàng)立以來就十分流行,發(fā)展極為迅速,并且對(duì)C++語言產(chǎn)生了有力的沖擊。Java技術(shù)具備極好的高效通用性、平臺(tái)移植性以及安全性。但也不代表其是萬能的,以下對(duì)根據(jù)類文件中的Java程序運(yùn)行中異常分析技術(shù)。

        1 程序的錯(cuò)誤類型

        在程序的設(shè)計(jì)之中,不管規(guī)模大小,出現(xiàn)錯(cuò)誤總是難以避免。程序設(shè)計(jì)幾乎沒有可以一次完成的,沒有錯(cuò)誤出現(xiàn),在編程的過程之中因?yàn)榉N種原因,經(jīng)常會(huì)有這樣或是那樣的問題出現(xiàn),這些程序上的錯(cuò)誤就是人們常說的“Bug”,對(duì)Bug實(shí)行檢測(cè)并且加以修正的方式就是“Debug”,即為調(diào)試。

        基本上所有的集成開發(fā)環(huán)境都提供了強(qiáng)大的和程序調(diào)試功能,在程序進(jìn)行編譯,連接,運(yùn)行時(shí),會(huì)對(duì)程序之中錯(cuò)誤實(shí)行診斷。程序的錯(cuò)誤抽象的分為三類:語法錯(cuò)誤、運(yùn)行錯(cuò)誤及邏輯錯(cuò)誤。

        1.1 出現(xiàn)語法錯(cuò)誤。語法錯(cuò)誤是因編程中輸入的語法規(guī)則不符合標(biāo)準(zhǔn)而出現(xiàn)的。程序編譯就通不過,程序不能運(yùn)行起來。此類錯(cuò)誤最簡(jiǎn)單,調(diào)試起來相對(duì)容易。比如:表達(dá)方式存在殘缺、必要的標(biāo)點(diǎn)符號(hào)缺失、關(guān)鍵字的輸入有誤、數(shù)據(jù)類型不相符、循環(huán)語句或者是選擇語句的關(guān)鍵字不相符等等。通常,編譯器對(duì)程序進(jìn)行編譯的過程中,會(huì)把檢測(cè)到的語法錯(cuò)誤以提示的方式列舉出來,又稱為編譯錯(cuò)誤。

        語法錯(cuò)誤的調(diào)試,則可以由集成開發(fā)環(huán)境提供的調(diào)試功能來實(shí)現(xiàn),在程序進(jìn)行編譯時(shí),編譯器會(huì)對(duì)程序中的語法錯(cuò)誤進(jìn)行診斷。

        編譯診斷的語法錯(cuò)誤分為3種:(1)致命錯(cuò)誤:這個(gè)錯(cuò)誤大多是編譯程序內(nèi)部發(fā)生的錯(cuò)誤,發(fā)生這類錯(cuò)誤、時(shí),編譯被迫中止,只能重新啟動(dòng)編譯程序,但是這類錯(cuò)誤很少發(fā)生,為了安全,編譯前最好還是先保存程序。(2)錯(cuò)誤:這個(gè)錯(cuò)誤通常是在編譯時(shí),語法不當(dāng)所引起的。例如:括號(hào)不匹配,變量未聲明等。產(chǎn)生這類錯(cuò)誤時(shí),編譯程序會(huì)出現(xiàn)報(bào)錯(cuò)提示,我們根據(jù)提示對(duì)源程序進(jìn)行修改即可。這類錯(cuò)誤是出現(xiàn)最多的。(3)警告:是指被編譯程序懷疑有錯(cuò),但是不確定,有時(shí)可強(qiáng)行通過。例如:沒有加void聲明的主函數(shù)沒有返回值,double數(shù)據(jù)被轉(zhuǎn)換為float類型等。這些警告中有些會(huì)導(dǎo)致錯(cuò)誤,有些可以通過。

        常規(guī)解決方法:此類錯(cuò)誤一般程序編譯系統(tǒng)會(huì)自動(dòng)提示相應(yīng)的錯(cuò)誤地點(diǎn)和錯(cuò)誤原因,比如哪一行代碼少了個(gè)括號(hào)等諸如此類的提示,常見的錯(cuò)誤,看懂直接改正即可,如果是看不懂原因,可以將錯(cuò)誤提示信息輸入搜索引擎查找一下,一般都能找到具體的解決辦法?;蛘哂行┚幊唐脚_(tái)會(huì)本身提供一個(gè)本地或者在線的信息庫,提供詳細(xì)的錯(cuò)誤原因和解決辦法,比如微軟的.NET開發(fā)平臺(tái)。

        1.2 運(yùn)行錯(cuò)誤。指程序在運(yùn)行過程中出現(xiàn)的錯(cuò)誤。程序通過語法錯(cuò)誤檢測(cè),但是運(yùn)行的時(shí)候出現(xiàn)錯(cuò)誤,導(dǎo)致程序被迫終止,此類錯(cuò)誤有特定的發(fā)生條件,因此能夠準(zhǔn)確的定位錯(cuò)誤代碼段,因而調(diào)試也比較方便。例如:除法運(yùn)算時(shí)除數(shù)為0、數(shù)組下標(biāo)越界、文件打不開、磁盤空間不夠、數(shù)據(jù)庫連接錯(cuò)誤等。此類錯(cuò)誤發(fā)生時(shí),編譯平臺(tái)一般也會(huì)提示相應(yīng)的信息,對(duì)于常規(guī)的錯(cuò)誤會(huì)有比較精確地提示,但有時(shí)提示的錯(cuò)誤原因會(huì)比較模糊,但因?yàn)榇祟愬e(cuò)誤一般在程序運(yùn)行時(shí),只在特定的條件下才會(huì)發(fā)生,所以根據(jù)錯(cuò)誤發(fā)生的條件,能夠大致判斷程序出錯(cuò)的代碼段,結(jié)合錯(cuò)誤的原因,也能比較方便的調(diào)試出錯(cuò)誤。

        1.3 邏輯錯(cuò)誤。程序運(yùn)行之后,沒有得到設(shè)計(jì)者預(yù)期的結(jié)果,這就說明程序存在邏輯錯(cuò)誤。這種錯(cuò)誤在語法上是有效的,但是在邏輯上是錯(cuò)誤的。

        2 Java的異常處理

        程序的錯(cuò)誤就是通常的異常,也叫Exception。對(duì)于語法錯(cuò)誤,Java編譯系統(tǒng)在編就能發(fā)現(xiàn)檢查出錯(cuò)誤。對(duì)于邏輯錯(cuò)誤,編譯系統(tǒng)是無法發(fā)現(xiàn)錯(cuò)誤的,錯(cuò)誤需要人為去發(fā)現(xiàn)排除錯(cuò)誤。對(duì)于運(yùn)行出現(xiàn)錯(cuò)誤,Java語言中表現(xiàn)異常的時(shí)候,利用一個(gè)專門的類來顯示一種特定異常的情況,于系統(tǒng)之中傳遞的異常情況則是該類的對(duì)象,全部呈現(xiàn)異常的類構(gòu)成的體系就為Java語言之中的異常類體系。

        2.1 Java的異常類。Java的異常為單個(gè)對(duì)象,全部的異常均直接或者是間接地繼承Throwable類。而Throwable類的繼承層次組成為:Throwabl分為Error及Exception,Exception類下設(shè)RuntimeException。為有利于對(duì)這些可以傳遞對(duì)象的管理,Java API之中專門設(shè)有java.lang.Throwable類,唯有此類子類的對(duì)象才能夠?qū)崿F(xiàn)異常在系統(tǒng)中的傳遞體系。此類的兩個(gè)子類為:(1)Error類。此類代表錯(cuò)誤,對(duì)程序不能恢復(fù)的異常情況進(jìn)行指示。對(duì)于全部錯(cuò)誤類型及其子類,均不需要程序完成處理。較為多見的Error類,比如內(nèi)存溢出StackOverflowError等問題。(2)Exception類。此類代表異常,對(duì)程序之中能夠進(jìn)行恢復(fù)的異常情況進(jìn)行指示。此類為全部Java語言異常類體系之中的父類。運(yùn)用此類,能夠代表全部的異常問題。

        掌握異常類的分類,有利于后續(xù)語法之中的編寫,也能夠出現(xiàn)使用異常類時(shí)選擇最為合適的異常類類型。

        2.2 Java異常處理的機(jī)制。于一個(gè)方法的運(yùn)行過程之中,若出現(xiàn)了異常,那么這個(gè)方法形成了一個(gè)代表該異常的對(duì)象或者是Java虛擬機(jī)出現(xiàn)了一個(gè)包含了異常詳細(xì)的信息,而且將它反饋給運(yùn)行階段系統(tǒng),正在運(yùn)行的系統(tǒng)會(huì)自動(dòng)找出有關(guān)的代碼,對(duì)出現(xiàn)的異常進(jìn)行及時(shí)的處理,運(yùn)行系統(tǒng)于方法的調(diào)用棧之中進(jìn)行搜索,從出現(xiàn)異常的地方進(jìn)行回朔式的查找,依據(jù)被調(diào)用的順序進(jìn)行倒退檢查,直至有異常處理的方法被找到。

        2.3 異常管理中的實(shí)用性建議。針對(duì)操作數(shù)據(jù)庫異常而言,Java應(yīng)用程序僅僅指示一個(gè)異常類。單純依靠Java應(yīng)用程序?qū)﹀e(cuò)誤信息的指示能力,基本不可能為應(yīng)用程序人員對(duì)錯(cuò)誤排除提供有利依據(jù),僅能明確的指出是應(yīng)用程序錯(cuò)誤或者是因?yàn)閿?shù)據(jù)庫錯(cuò)誤造成這個(gè)異常的出現(xiàn)。為了能夠進(jìn)一步的指明出現(xiàn)錯(cuò)誤問題的原因,需要在數(shù)據(jù)庫層面設(shè)定異常的時(shí)候,對(duì)錯(cuò)誤原因進(jìn)行具體的說明。通常對(duì)應(yīng)用程序開發(fā)人員的要求相對(duì)較高,需要其有豐富的工作經(jīng)驗(yàn)、嚴(yán)密的思維邏輯以及扎實(shí)的專業(yè)知識(shí)。盡管存在的難度較大,程序開發(fā)人員還是要加強(qiáng)自身的創(chuàng)新與實(shí)踐能力,向預(yù)期目標(biāo)發(fā)展,并非通過客戶的反饋發(fā)現(xiàn)其中存在的錯(cuò)誤。

        3 結(jié)束語

        Java普遍運(yùn)用在個(gè)人PC機(jī)、科學(xué)超級(jí)計(jì)算機(jī)、互聯(lián)網(wǎng)、數(shù)據(jù)中心、游戲控制臺(tái)以及移動(dòng)電話等領(lǐng)域,還擁有全球之中最大的開發(fā)者專業(yè)群體。在全球云計(jì)算以及移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境之下,Java有廣闊的前景,而且有顯著的優(yōu)勢(shì)。對(duì)Java有異常拋出詳細(xì)信息實(shí)行分析,可以提升對(duì)異常的分析能力,從而進(jìn)行更精準(zhǔn)的定位,提升調(diào)試及開發(fā)的效率。

        參考文獻(xiàn):

        [1]黃金虎.基于JVM執(zhí)行事件的動(dòng)態(tài)監(jiān)測(cè)技術(shù)研究[D].華中科技大學(xué),2012(01).

        [2]楊克嶠.Java程序優(yōu)化與數(shù)據(jù)競(jìng)爭(zhēng)檢測(cè)的研究[D].復(fù)旦大學(xué),2010(10).

        [3]李倩.Java程序指向分析研究[D].南京大學(xué),2012(08).

        [4]陳紅躍,張宏軍,陳剛.Java異常處理策略研究[J].計(jì)算機(jī)技術(shù)與發(fā)展.2012(07).

        作者簡(jiǎn)介:苑隆寅(1973.03-),四川廣安人,教師,講師,碩士研究生,研究方向:系統(tǒng)分析、數(shù)字資源利用。

        作者單位:重慶郵電大學(xué)移通學(xué)院,重慶 401520

        国产麻豆放荡av激情演绎| 亚洲无av在线中文字幕| 奇米影视7777久久精品| 久久久久久久久蜜桃| 欧美黑人又粗又大久久久| 1234.com麻豆性爰爱影| 给我播放的视频在线观看| 男性av天堂一区二区| 99国产精品99久久久久久| 国产无套内射久久久国产| 亚洲AⅤ永久无码精品AA| 国产成人自拍小视频在线| 视频国产自拍在线观看| 欧美人与善在线com| 国产成人精品一区二区不卡| 免费一本色道久久一区| 亚洲av黄片一区二区| 国产三级精品三级男人的天堂| 欧美日韩在线视频一区| 国产成人综合色在线观看网站| 久热香蕉av在线爽青青| 亚洲最大的av在线观看| 午夜国产视频一区二区三区| 四川丰满妇女毛片四川话| av片在线观看免费| 黄 色 成 年 人 网 站免费| 日本韩国一区二区高清| 伊人久久大香线蕉av不变影院| 亚洲精品熟女国产| 无码国产精品第100页| 少妇人妻字幕一区二区| 人妻少妇被猛烈进入中文字幕| 国产伦理一区二区| 精品无码久久久久久久动漫| 国产一区二区精品av| 国语对白免费观看123 | 在线亚洲精品免费视频| 一区二区精品国产亚洲| 中文字幕乱码熟女人妻水蜜桃| 亚洲欧美日韩国产一区二区精品| 日本加勒比一区二区在线观看|