java實(shí)現(xiàn)算數(shù)異常代碼 java算數(shù)測(cè)試代碼

java實(shí)現(xiàn)一行代碼運(yùn)行3s無(wú)響應(yīng),讓它報(bào)錯(cuò)

1. java.lang.nullpointerexception

創(chuàng)新互聯(lián)建站是專(zhuān)業(yè)的沙依巴克網(wǎng)站建設(shè)公司,沙依巴克接單;提供網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行沙依巴克網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

這個(gè)異常大家肯定都經(jīng)常遇到,異常的解釋是"程序 遇上了空指針",簡(jiǎn)單地說(shuō)就是調(diào)用了未經(jīng)初始化的對(duì)象或者是不存在的對(duì)象,這個(gè)錯(cuò)誤經(jīng)常出現(xiàn)在創(chuàng)建圖片,調(diào)用數(shù)組這些操作中,比如圖片 未經(jīng)初始化,或者圖片創(chuàng)建時(shí)的路徑錯(cuò)誤等等。對(duì)數(shù)組操作中出現(xiàn)空指針,很多情況下是一些剛開(kāi)始學(xué)習(xí)編程的朋友常犯的錯(cuò)誤,即把數(shù)組的初始化和數(shù)組元素的初 始化混淆起來(lái)了。數(shù)組的初始化是對(duì)數(shù)組分配需要的空間,而初始化后的數(shù)組,其中的元素并沒(méi)有實(shí)例化,依然是空的,所以還需要對(duì)每個(gè)元素都進(jìn)行初始化(如果 要調(diào)用的話(huà))

2. java.lang.classnotfoundexception

這個(gè)異常是很多原本在jb等開(kāi)發(fā)環(huán)境中開(kāi) 發(fā)的程序員,把jb下的程序包放在wtk下編譯經(jīng)常出現(xiàn)的問(wèn)題,異常的解釋是"指定的類(lèi)不存在",這里主要考慮一下 類(lèi)的名稱(chēng)和路徑是否正確即可,如果是在jb下做的程序包,一般都是默認(rèn)加上package的,所以轉(zhuǎn)到wtk下后要注意把package的路徑加上。

3. java.lang.arithmeticexception

這個(gè)異常的解釋是"數(shù)學(xué)運(yùn)算異常",比如程序中出現(xiàn)了除以零這樣的運(yùn)算就會(huì)出這樣的異常,對(duì)這種異常,大家就要好好檢查一下自己程序中涉及到數(shù)學(xué)運(yùn)算的地方,公式是不是有不妥了。

4. java.lang.arrayindexoutofboundsexception

這個(gè)異常相信很多朋友也經(jīng)常遇到過(guò),異常的解釋是"數(shù)組下標(biāo)越界",現(xiàn)在程序中大多都有對(duì)數(shù)組的操作,因此在調(diào)用 數(shù)組的時(shí)候一定要認(rèn)真檢查,看自己調(diào)用的下標(biāo)是不是超出了數(shù)組的范圍,一般來(lái)說(shuō),顯示(即直接用常數(shù)當(dāng)下標(biāo))調(diào)用不太容易出這樣的錯(cuò),但隱式(即用變量表 示下標(biāo))調(diào)用就經(jīng)常出錯(cuò)了,還有一種情況,是程序中定義的數(shù)組的長(zhǎng)度是通過(guò)某些特定方法決定的,不是事先聲明的,這個(gè)時(shí)候,最好先查看一下數(shù)組的length,以免出現(xiàn)這個(gè)異常。

5. java.lang.illegalargumentexception

這個(gè)異常的解釋 是"方法的參數(shù)錯(cuò)誤",很多j2me的類(lèi)庫(kù)中的方法在一些情況下都會(huì)引發(fā)這樣的錯(cuò)誤,比如音量調(diào)節(jié)方法中的音量參數(shù) 如果寫(xiě)成負(fù)數(shù)就會(huì)出現(xiàn)這個(gè)異常,再比如g.setcolor(int red,int green,int blue)這個(gè)方法中的三個(gè)值,如果有超過(guò)255的也會(huì)出現(xiàn)這個(gè)異常,因此一旦發(fā)現(xiàn)這個(gè)異常,我們要做的,就是趕緊去檢查一下方法調(diào)用中的參數(shù)傳遞是不是 出現(xiàn)了錯(cuò)誤。

6. java.lang.illegalaccessexception

這個(gè)異常的解釋是"沒(méi)有訪(fǎng)問(wèn)權(quán)限",當(dāng)應(yīng)用程序要調(diào)用一個(gè)類(lèi),但當(dāng)前的方法即沒(méi)有對(duì)該類(lèi)的訪(fǎng)問(wèn)權(quán)限便會(huì)出現(xiàn)這個(gè)異常。對(duì)程序中用了package的情況下要注意這個(gè)異常。

其他還有很多異常,我就不一一列舉了,我要說(shuō)明的是,一個(gè)合格的程序員,需要對(duì)程序中常見(jiàn)的問(wèn)題有相當(dāng)?shù)牧私夂拖鄳?yīng)的解決辦法,否則僅僅停留在寫(xiě)程序而不會(huì)改程序的話(huà),會(huì)極大影響到自己的開(kāi)發(fā)的。關(guān)于異常的全部說(shuō)明,在api里都可以查閱。

算術(shù)異常類(lèi):ArithmeticExecption

空指針異常類(lèi):NullPointerException

類(lèi)型強(qiáng)制轉(zhuǎn)換異常:ClassCastException

數(shù)組負(fù)下標(biāo)異常:NegativeArrayException

數(shù)組下標(biāo)越界異常:ArrayIndexOutOfBoundsException

違背安全原則異常:SecturityException

文件已結(jié)束異常:EOFException

文件未找到異常:FileNotFoundException

字符串轉(zhuǎn)換為數(shù)字異常:NumberFormatException

操作數(shù)據(jù)庫(kù)異常:SQLException

輸入輸出異常:IOException

方法未找到異常:NoSuchMethodException

java.lang.AbstractMethodError

抽象方法錯(cuò)誤。當(dāng)應(yīng)用試圖調(diào)用抽象方法時(shí)拋出。

java.lang.AssertionError

斷言錯(cuò)。用來(lái)指示一個(gè)斷言失敗的情況。

java.lang.ClassCircularityError

類(lèi)循環(huán)依賴(lài)錯(cuò)誤。在初始化一個(gè)類(lèi)時(shí),若檢測(cè)到類(lèi)之間循環(huán)依賴(lài)則拋出該異常。

java.lang.ClassFormatError

類(lèi)格式錯(cuò)誤。當(dāng)Java虛擬機(jī)試圖從一個(gè)文件中讀取Java類(lèi),而檢測(cè)到該文件的內(nèi)容不符合類(lèi)的有效格式時(shí)拋出。

java.lang.Error

錯(cuò)誤。是所有錯(cuò)誤的基類(lèi),用于標(biāo)識(shí)嚴(yán)重的程序運(yùn)行問(wèn)題。這些問(wèn)題通常描述一些不應(yīng)被應(yīng)用程序捕獲的反常情況。

java.lang.ExceptionInInitializerError

初始化程序錯(cuò)誤。當(dāng)執(zhí)行一個(gè)類(lèi)的靜態(tài)初始化程序的過(guò)程中,發(fā)生了異常時(shí)拋出。靜態(tài)初始化程序是指直接包含于類(lèi)中的static語(yǔ)句段。

java.lang.IllegalAccessError

違法訪(fǎng)問(wèn)錯(cuò)誤。當(dāng)一個(gè)應(yīng)用試圖訪(fǎng)問(wèn)、修改某個(gè)類(lèi)的域(Field)或者調(diào)用其方法,但是又違反域或方法的可見(jiàn)性聲明,則拋出該異常。

java.lang.IncompatibleClassChangeError

不兼容的類(lèi)變化錯(cuò)誤。當(dāng)正在執(zhí)行的方法所依賴(lài)的類(lèi)定義發(fā)生了不兼容的改變時(shí),拋出該異常。一般在修改了應(yīng)用中的某些類(lèi)的聲明定義而沒(méi)有對(duì)整個(gè)應(yīng)用重新編譯而直接運(yùn)行的情況下,容易引發(fā)該錯(cuò)誤。

java.lang.InstantiationError

實(shí)例化錯(cuò)誤。當(dāng)一個(gè)應(yīng)用試圖通過(guò)Java的new操作符構(gòu)造一個(gè)抽象類(lèi)或者接口時(shí)拋出該異常.

java.lang.InternalError

內(nèi)部錯(cuò)誤。用于指示Java虛擬機(jī)發(fā)生了內(nèi)部錯(cuò)誤。

java.lang.LinkageError

鏈接錯(cuò)誤。該錯(cuò)誤及其所有子類(lèi)指示某個(gè)類(lèi)依賴(lài)于另外一些類(lèi),在該類(lèi)編譯之后,被依賴(lài)的類(lèi)改變了其類(lèi)定義而沒(méi)有重新編譯所有的類(lèi),進(jìn)而引發(fā)錯(cuò)誤的情況。

java.lang.NoClassDefFoundError

未找到類(lèi)定義錯(cuò)誤。當(dāng)Java虛擬機(jī)或者類(lèi)裝載器試圖實(shí)例化某個(gè)類(lèi),而找不到該類(lèi)的定義時(shí)拋出該錯(cuò)誤。

java.lang.NoSuchFieldError

域不存在錯(cuò)誤。當(dāng)應(yīng)用試圖訪(fǎng)問(wèn)或者修改某類(lèi)的某個(gè)域,而該類(lèi)的定義中沒(méi)有該域的定義時(shí)拋出該錯(cuò)誤。

java.lang.NoSuchMethodError

方法不存在錯(cuò)誤。當(dāng)應(yīng)用試圖調(diào)用某類(lèi)的某個(gè)方法,而該類(lèi)的定義中沒(méi)有該方法的定義時(shí)拋出該錯(cuò)誤。

java.lang.OutOfMemoryError

內(nèi)存不足錯(cuò)誤。當(dāng)可用內(nèi)存不足以讓Java虛擬機(jī)分配給一個(gè)對(duì)象時(shí)拋出該錯(cuò)誤。

java.lang.StackOverflowError

堆棧溢出錯(cuò)誤。當(dāng)一個(gè)應(yīng)用遞歸調(diào)用的層次太深而導(dǎo)致堆棧溢出時(shí)拋出該錯(cuò)誤。

java.lang.ThreadDeath

線(xiàn)程結(jié)束。當(dāng)調(diào)用Thread類(lèi)的stop方法時(shí)拋出該錯(cuò)誤,用于指示線(xiàn)程結(jié)束。

java.lang.UnknownError

未知錯(cuò)誤。用于指示Java虛擬機(jī)發(fā)生了未知嚴(yán)重錯(cuò)誤的情況。

java.lang.UnsatisfiedLinkError

未滿(mǎn)足的鏈接錯(cuò)誤。當(dāng)Java虛擬機(jī)未找到某個(gè)類(lèi)的聲明為native方法的本機(jī)語(yǔ)言定義時(shí)拋出。

java.lang.UnsupportedClassVersionError

不支持的類(lèi)版本錯(cuò)誤。當(dāng)Java虛擬機(jī)試圖從讀取某個(gè)類(lèi)文件,但是發(fā)現(xiàn)該文件的主、次版本號(hào)不被當(dāng)前Java虛擬機(jī)支持的時(shí)候,拋出該錯(cuò)誤。

java.lang.VerifyError

驗(yàn)證錯(cuò)誤。當(dāng)驗(yàn)證器檢測(cè)到某個(gè)類(lèi)文件中存在內(nèi)部不兼容或者安全問(wèn)題時(shí)拋出該錯(cuò)誤。

java.lang.VirtualMachineError

虛擬機(jī)錯(cuò)誤。用于指示虛擬機(jī)被破壞或者繼續(xù)執(zhí)行操作所需的資源不足的情況。

java.lang.ArithmeticException

算術(shù)條件異常。譬如:整數(shù)除零等。

java.lang.ArrayIndexOutOfBoundsException

數(shù)組索引越界異常。當(dāng)對(duì)數(shù)組的索引值為負(fù)數(shù)或大于等于數(shù)組大小時(shí)拋出。

java.lang.ArrayStoreException

數(shù)組存儲(chǔ)異常。當(dāng)向數(shù)組中存放非數(shù)組聲明類(lèi)型對(duì)象時(shí)拋出。

java.lang.ClassCastException

類(lèi)造型異常。假設(shè)有類(lèi)A和B(A不是B的父類(lèi)或子類(lèi)),O是A的實(shí)例,那么當(dāng)強(qiáng)制將O構(gòu)造為類(lèi)B的實(shí)例時(shí)拋出該異常。該異常經(jīng)常被稱(chēng)為強(qiáng)制類(lèi)型轉(zhuǎn)換異常。

java.lang.ClassNotFoundException

找不到類(lèi)異常。當(dāng)應(yīng)用試圖根據(jù)字符串形式的類(lèi)名構(gòu)造類(lèi),而在遍歷CLASSPAH之后找不到對(duì)應(yīng)名稱(chēng)的class文件時(shí),拋出該異常。

java.lang.CloneNotSupportedException

不支持克隆異常。當(dāng)沒(méi)有實(shí)現(xiàn)Cloneable接口或者不支持克隆方法時(shí),調(diào)用其clone()方法則拋出該異常。

java.lang.EnumConstantNotPresentException

枚舉常量不存在異常。當(dāng)應(yīng)用試圖通過(guò)名稱(chēng)和枚舉類(lèi)型訪(fǎng)問(wèn)一個(gè)枚舉對(duì)象,但該枚舉對(duì)象并不包含常量時(shí),拋出該異常。

java.lang.Exception

根異常。用以描述應(yīng)用程序希望捕獲的情況。

java.lang.IllegalAccessException

違法的訪(fǎng)問(wèn)異常。當(dāng)應(yīng)用試圖通過(guò)反射方式創(chuàng)建某個(gè)類(lèi)的實(shí)例、訪(fǎng)問(wèn)該類(lèi)屬性、調(diào)用該類(lèi)方法,而當(dāng)時(shí)又無(wú)法訪(fǎng)問(wèn)類(lèi)的、屬性的、方法的或構(gòu)造方法的定義時(shí)拋出該異常。

java.lang.IllegalMonitorStateException

違法的監(jiān)控狀態(tài)異常。當(dāng)某個(gè)線(xiàn)程試圖等待一個(gè)自己并不擁有的對(duì)象(O)的監(jiān)控器或者通知其他線(xiàn)程等待該對(duì)象(O)的監(jiān)控器時(shí),拋出該異常。

java.lang.IllegalStateException

違法的狀態(tài)異常。當(dāng)在Java環(huán)境和應(yīng)用尚未處于某個(gè)方法的合法調(diào)用狀態(tài),而調(diào)用了該方法時(shí),拋出該異常。

java.lang.IllegalThreadStateException

違法的線(xiàn)程狀態(tài)異常。當(dāng)縣城尚未處于某個(gè)方法的合法調(diào)用狀態(tài),而調(diào)用了該方法時(shí),拋出異常。

java.lang.IndexOutOfBoundsException

索引越界異常。當(dāng)訪(fǎng)問(wèn)某個(gè)序列的索引值小于0或大于等于序列大小時(shí),拋出該異常。

java.lang.InstantiationException

實(shí)例化異常。當(dāng)試圖通過(guò)newInstance()方法創(chuàng)建某個(gè)類(lèi)的實(shí)例,而該類(lèi)是一個(gè)抽象類(lèi)或接口時(shí),拋出該異常。

java.lang.InterruptedException

被中止異常。當(dāng)某個(gè)線(xiàn)程處于長(zhǎng)時(shí)間的等待、休眠或其他暫停狀態(tài),而此時(shí)其他的線(xiàn)程通過(guò)Thread的interrupt方法終止該線(xiàn)程時(shí)拋出該異常。

java.lang.NegativeArraySizeException

數(shù)組大小為負(fù)值異常。當(dāng)使用負(fù)數(shù)大小值創(chuàng)建數(shù)組時(shí)拋出該異常。

java.lang.NoSuchFieldException

屬性不存在異常。當(dāng)訪(fǎng)問(wèn)某個(gè)類(lèi)的不存在的屬性時(shí)拋出該異常。

java.lang.NoSuchMethodException

方法不存在異常。當(dāng)訪(fǎng)問(wèn)某個(gè)類(lèi)的不存在的方法時(shí)拋出該異常。

java.lang.NullPointerException

空指針異常。當(dāng)應(yīng)用試圖在要求使用對(duì)象的地方使用了null時(shí),拋出該異常。譬如:調(diào)用null對(duì)象的實(shí)例方法、訪(fǎng)問(wèn)null對(duì)象的屬性、計(jì)算null對(duì)象的長(zhǎng)度、使用throw語(yǔ)句拋出null等等。

java.lang.NumberFormatException

數(shù)字格式異常。當(dāng)試圖將一個(gè)String轉(zhuǎn)換為指定的數(shù)字類(lèi)型,而該字符串確不滿(mǎn)足數(shù)字類(lèi)型要求的格式時(shí),拋出該異常。

java.lang.RuntimeException

運(yùn)行時(shí)異常。是所有Java虛擬機(jī)正常操作期間可以被拋出的異常的父類(lèi)。

java.lang.SecurityException

安全異常。由安全管理器拋出,用于指示違反安全情況的異常。

java.lang.StringIndexOutOfBoundsException

字符串索引越界異常。當(dāng)使用索引值訪(fǎng)問(wèn)某個(gè)字符串中的字符,而該索引值小于0或大于等于序列大小時(shí),拋出該異常。

java.lang.TypeNotPresentException

類(lèi)型不存在異常。當(dāng)應(yīng)用試圖以某個(gè)類(lèi)型名稱(chēng)的字符串表達(dá)方式訪(fǎng)問(wèn)該類(lèi)型,但是根據(jù)給定的名稱(chēng)又找不到該類(lèi)型是拋出該異常。該異常與ClassNotFoundException的區(qū)別在于該異常是unchecked(不被檢查)異常,而ClassNotFoundException 是checked(被檢查)異常。

java.lang.UnsupportedOperationException

不支持的方法異常。指明請(qǐng)求的方法不被支持情況的異常。

異常

javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字)

可能原因

action沒(méi)有再strutsconfig.xml 中定義,或沒(méi)有找到匹配的action,例如在JSP文件中使用

異常

org.apache.jasper.JasperException: Cannot retrieve definition for form bean null

可能原因

這個(gè)異常是因?yàn)镾truts根據(jù)strutsconfig.xml中的mapping沒(méi)有找到action期望的form bean。大部分的情況可能是因?yàn)樵趂ormbean中設(shè)置的name屬性和action中設(shè)置的name屬性不匹配所致。換句話(huà)說(shuō),action和form都應(yīng)該各自有一個(gè)name屬性,并且要精確匹配,包括大小寫(xiě)。這個(gè)錯(cuò)誤當(dāng)沒(méi)有name屬性和action關(guān)聯(lián)時(shí)也會(huì)發(fā)生,如果沒(méi)有在action 中指定name屬性,那么就沒(méi)有name屬性和action相關(guān)聯(lián)。當(dāng)然當(dāng)action制作某些控制時(shí),譬如根據(jù)參數(shù)值跳轉(zhuǎn)到相應(yīng)的jsp頁(yè)面,而不是處 理表單數(shù)據(jù),這是就不用name屬性,這也是action的使用方法之一。

異常

No action instance for path /xxxx could be created

可能原因

特別提示:因?yàn)橛泻芏嘀星闆r會(huì)導(dǎo)致這個(gè)錯(cuò)誤的發(fā)生,所以推薦大家調(diào)高你的web服務(wù)器的日志/調(diào)試級(jí)別,這樣可以從更多的信息中看到潛在的、在試圖創(chuàng)建action類(lèi)時(shí)發(fā)生的錯(cuò)誤,這個(gè)action類(lèi)你已經(jīng)在strutsconfig.xml中設(shè)置了關(guān)聯(lián)(即添加了標(biāo)簽)。

在strutsconfig.xml中通過(guò)action標(biāo)簽的class屬性指定的action類(lèi)不能被找到有很多種原因,例如:定位編譯后 的.class文件失敗。Failure to place compiled .class file for the action in the classpath (在web開(kāi)發(fā)中,class的的位置在r WEBINF/classes,所以你的action class必須要在這個(gè)目錄下。例如你的action類(lèi)位于WEBINF/classes/action/Login.class,那么在strutsconfig.xml中設(shè)置action的屬性type時(shí)就是action.Login).

拼寫(xiě)錯(cuò)誤,這個(gè)也時(shí)有發(fā)生,并且不易找到,特別注意第一個(gè)字母的大小寫(xiě)和包的名稱(chēng)。

異常

javax.servlet.jsp.JspException: No getter method for property username of bean org.apache.struts.taglib.html.BEAN

可能原因

沒(méi)有位form bean中的某個(gè)變量定義getter 方法

這個(gè)錯(cuò)誤主要發(fā)生在表單提交的FormBean中,用struts標(biāo)記時(shí),在FormBean中必須有一個(gè)getUsername()方法。注意字母“U”。

異常

java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm

可能原因

這個(gè)錯(cuò)誤主要發(fā)生在在classpath中找不到相應(yīng)的Java .class文件。如果這個(gè)錯(cuò)誤發(fā)生在web應(yīng)用程序的運(yùn)行時(shí),主要是因?yàn)橹付ǖ腸lass文件不在web server的classpath中(/WEBINF/classes 和/WEBINF/lib)。在上面的錯(cuò)誤中,原因是找不到ActionForm類(lèi)。

異常

javax.servlet.jsp.JspException: Exception creating bean of class org.apache.struts.action.ActionForm: {1}

可能原因

Instantiating Strutsprovided ActionForm class directly instead of instantiating a class derived off ActionForm. This mightoccur implicitly if you specify that a formbean is this Struts ActionForm class rather than specifying a child of this classfor the formbean.

Not associating an ActionFormdescended class with an action can also lead to this error.

異常

javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection

可能原因

不是標(biāo)識(shí)Struts actionServlet的標(biāo)記就是映射.do擴(kuò)展名的標(biāo)記或者兩者都沒(méi)有在web.xml中聲明。

在strutsconfig.xml中的打字或者拼寫(xiě)錯(cuò)誤也可導(dǎo)致這個(gè)異常的發(fā)生。例如缺少一個(gè)標(biāo)記的關(guān)閉符號(hào)/。最好使用struts console工具檢查一下。

另外,loadonstartup必須在web.xml中聲明,這要么是一個(gè)空標(biāo)記,要么指定一個(gè)數(shù)值,這個(gè)數(shù)值用來(lái)表servlet運(yùn)行的優(yōu)先級(jí),數(shù)值越大優(yōu)先級(jí)越低。

還有一個(gè)和使用loadonstartup有關(guān)的是使用Struts預(yù)編譯JSP文件時(shí)也可能導(dǎo)致這個(gè)異常。

異常

java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils.java:1223)

可能原因

在strutsconfig.xml中的forward元素缺少path屬性。例如應(yīng)該是如下形式:

異常

javax.servlet.jsp.JspException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope

Probable Causes

試圖在Struts的form標(biāo)記外使用form的子元素。這常常發(fā)生在你在后面使用Struts的html標(biāo) 記。另外要注意可能你不經(jīng)意使用的無(wú)主體的標(biāo)記,如,這樣web 服務(wù)器解析時(shí)就當(dāng)作一個(gè)無(wú)主體的標(biāo)記,隨后使用的所有標(biāo)記都被認(rèn)為是在這個(gè)標(biāo)記之外的,如又使用了還有就是在使用taglib引入HTML標(biāo)記庫(kù)時(shí),你使用的prefix的值不是html。

異常

javax.servlet.jsp.JspException: Missing message for key xx.xx.xx

Probable Causes

這個(gè)key的值對(duì)沒(méi)有在資源文件ApplicationResources.properties中定義。如果你使用eclipse時(shí)經(jīng)常碰到這樣的情況,當(dāng)項(xiàng)目重新編譯時(shí),eclipse會(huì)自動(dòng)將classes目錄下的資源文件刪除。

資源文件ApplicationResources.properties 不在classpath中應(yīng)將資源文件放到WEBINF/classes 目錄下,當(dāng)然要在strutsconfig.xml中定義)

異常

Cannot find message resources under key org.apache.struts.action.MESSAGE

可能原因

很顯然,這個(gè)錯(cuò)誤是發(fā)生在使用資源文件時(shí),而Struts沒(méi)有找到資源文件。

Implicitly trying to use message resources that are not available (such as using empty html:options tag instead of specifyingthe options in its body this assumes options are specified in ApplicationResources.properties file)

XML parser issues too many, too few, incorrect/incompatible versions

異常

Strange and seemingly random characters in HTML and on screen, but not in original JSP or servlet.

可能原因

混和使用Struts的html:form標(biāo)記和標(biāo)準(zhǔn)的HTML標(biāo)記不正確。

使用的編碼樣式在本頁(yè)中不支持。

異常

"Document contained no data" in Netscape

No data rendered (completely empty) page in Microsoft Internet Explorer

可能原因

使用一個(gè)Action的派生類(lèi)而沒(méi)有實(shí)現(xiàn)perform()方法或execute()方法。在Struts1.0中實(shí)現(xiàn)的是perform()方法,在Struts1.1中實(shí)現(xiàn)的是execute()方法,但Struts1.1向后兼容perform()方法。但你使用Struts1.1創(chuàng)建一個(gè)Action的派生類(lèi),并且實(shí)現(xiàn)了execute()方法,而你在Struts1.0中運(yùn)行的話(huà),就會(huì)得到"Document contained nodata" error message in Netscape or a completely empty (no HTML whatsoever) page rendered in Microsoft Internet Explorer.”的錯(cuò)誤信息。

異常

ServletException: BeanUtils.populate

解決方案

在用Struts上傳文件時(shí),遇到了javax.servlet.ServletException: BeanUtils.populate異常。

我的ActionServlet并沒(méi)有用到BeanUtils這些工具類(lèi)。后來(lái)仔細(xì)檢查代碼發(fā)現(xiàn)是在jsp文件里的form忘了加enctype= amp;quot;multipart/formdata" 了。所以寫(xiě)程序遇到錯(cuò)誤或異常應(yīng)該從多方面考慮問(wèn)題存在的可能性,想到系統(tǒng)提示信息以外的東西。

1. 定義Action后, 如果指定了name, 那么必須要定義一個(gè)與它同名的FormBean才能進(jìn)行form映射.2. 如果定義Action后, 提交頁(yè)面時(shí)出現(xiàn)"No input attribute for mapping path..." 錯(cuò)誤, 則需要在其input屬性中定義轉(zhuǎn)向的頁(yè)面.3. 如果插入新的數(shù)據(jù)時(shí)出現(xiàn)"Batch update row count wrong:..." 錯(cuò)誤, 則說(shuō)明XXX.hbm.xml中指定的key的類(lèi)型為原始類(lèi)型(int, long),因?yàn)檫@種類(lèi)型會(huì)自動(dòng)分配值, 而這個(gè)值往往會(huì)讓系統(tǒng)認(rèn)為已經(jīng)存在該記錄, 正確的方法是使用java.lang.Integer或java.lang.Long對(duì)象.4. 如果插入數(shù)據(jù)時(shí)出現(xiàn)"argument type mismatch" 錯(cuò)誤, 可能是你使用了Date等特殊對(duì)象, 因?yàn)閟truts不能自動(dòng)從String型轉(zhuǎn)換成Date型,所以, 你需要在A(yíng)ction中手動(dòng)把String型轉(zhuǎn)換成Date型.5. Hibernate中, Query的iterator()比list()方法快很多.6. 如果出現(xiàn)"equal symbol expected" 錯(cuò)誤, 說(shuō)明你的strtus標(biāo)簽中包含另一個(gè)標(biāo)簽或者變量, 例如:

或者

"/

這樣的情況...

錯(cuò)誤:Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update原因與解決: 因?yàn)镠ibernate Tools(或者Eclipse本身的Database Explorer)生成*.hbn.xml工具中包含有catalog="***"(*表示數(shù)據(jù)庫(kù)名稱(chēng))這樣的屬性,將該屬性刪除就可以了

錯(cuò)誤:org.hibernate.ObjectDeletedException: deleted object would be resaved by cascade (remove deleted object from associations)

原因與解決:

方法1 刪除Set方的cascade

方法2 解決關(guān)聯(lián)關(guān)系后,再刪除

方法3 在manytoone方增加cascade 但值不能是none

最后一招:

檢查一下hashCode equals是否使用了id作為唯一標(biāo)示的選項(xiàng)了;我用uuid.hex時(shí)是沒(méi)有問(wèn)題的;但是用了native,就不行了,怎么辦?刪除?。?/p>

問(wèn)題:今天用Tomcat 5.5.12,發(fā)現(xiàn)原來(lái)很好用的系統(tǒng)不能用了,反復(fù)測(cè)試發(fā)現(xiàn)頁(yè)面中不能包含taglib,否則會(huì)出現(xiàn)以下提示:HTTP Status 500 type Exception reportMessage description The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: /index.jsp(1,1) Unable to read TLD "METAINF/tlds/strutsbean.tld" from JAR file"file:*****/WEBINF/lib/struts.jar":原因:更新了工程用的lib文件夾下的jar,發(fā)布時(shí)也發(fā)布了servlet.jar和jspapi.jar。解決:把jspapi.jar刪除就解決這個(gè)問(wèn)題了。

java關(guān)于拋出異常的一段代碼

class?Math?{

public?static?float?div(float?x,?float?y)?throws?Exception?{

System.out.println("=====計(jì)算開(kāi)始=====");

float?temp?=?0;

try?{

temp?=?x?/?y;

}?catch?(Exception?e)?{

throw?e;

}?finally?{

System.out.println("=====計(jì)算結(jié)束=====");

}

return?temp;

}

}

public?class?danci?{

public?static?void?main(String[]?args)?{

try?{

float?i?=?0;

float?j?=?0;

// String?st1?=?args[0];

// String?st2?=?args[1];

// i?=?Float.parseFloat(st1);

// j?=?Float.parseFloat(st2);

System.out.println(i?+?"?除?"?+?j?+?"?=?"?+?Math.div(i,?j));

}?catch?(Exception?e)?{

System.out.println("異常產(chǎn)生:"?+?e);

}

}

}

因?yàn)槟闶窃谖易⑨尩哪堑胤匠霈F(xiàn)的異常,所以下邊的不會(huì)執(zhí)行而是立即跳到catch,如果注釋下就好了。

java的各種異常

Java Exception:

1、Error

2、Runtime Exception 運(yùn)行時(shí)異常

3、Exception

4、throw 用戶(hù)自定義異常

異常類(lèi)分兩大類(lèi)型:Error類(lèi)代表了編譯和系統(tǒng)的錯(cuò)誤,不允許捕獲;Exception類(lèi)代表了標(biāo)準(zhǔn)Java庫(kù)方法所激發(fā)的異常。Exception類(lèi)還包含運(yùn)行異常類(lèi)Runtime_Exception和非運(yùn)行異常類(lèi)Non_RuntimeException這兩個(gè)直接的子類(lèi)。

運(yùn)行異常類(lèi)對(duì)應(yīng)于編譯錯(cuò)誤,它是指Java程序在運(yùn)行時(shí)產(chǎn)生的由解釋器引發(fā)的各種異常。運(yùn)行異??赡艹霈F(xiàn)在任何地方,且出現(xiàn)頻率很高,因此為了避免巨大的系統(tǒng)資源開(kāi)銷(xiāo),編譯器不對(duì)異常進(jìn)行檢查。所以Java語(yǔ)言中的運(yùn)行異常不一定被捕獲。出現(xiàn)運(yùn)行錯(cuò)誤往往表示代碼有錯(cuò)誤,如:算數(shù)異常(如被0除)、下標(biāo)異常(如數(shù)組越界)等。

非運(yùn)行異常時(shí)Non_RuntimeException類(lèi)及其子類(lèi)的實(shí)例,又稱(chēng)為可檢測(cè)異常。Java編譯器利用分析方法或構(gòu)造方法中可能產(chǎn)生的結(jié)果來(lái)檢測(cè)Java程序中是否含有檢測(cè)異常的處理程序,對(duì)于每個(gè)可能的可檢測(cè)異常,方法或構(gòu)造方法的throws子句必須列出該異常對(duì)應(yīng)的類(lèi)。在Java的標(biāo)準(zhǔn)包java.lang java.util 和 java點(diǎn)虐 中定義的異常都是非運(yùn)行異常。

算術(shù)異常類(lèi):ArithmeticExecption

空指針異常類(lèi):NullPointerException

類(lèi)型強(qiáng)制轉(zhuǎn)換異常:ClassCastException

數(shù)組負(fù)下標(biāo)異常:NegativeArrayException

數(shù)組下標(biāo)越界異常:ArrayIndexOutOfBoundsException

違背安全原則異常:SecturityException

文件已結(jié)束異常:EOFException

文件未找到異常:FileNotFoundException

字符串轉(zhuǎn)換為數(shù)字異常:NumberFormatException

操作數(shù)據(jù)庫(kù)異常:SQLException

輸入輸出異常:IOException

方法未找到異常:NoSuchMethodException

java.lang.AbstractMethodError

抽象方法錯(cuò)誤。當(dāng)應(yīng)用試圖調(diào)用抽象方法時(shí)拋出。

java.lang.AssertionError

斷言錯(cuò)。用來(lái)指示一個(gè)斷言失敗的情況。

java.lang.ClassCircularityError

類(lèi)循環(huán)依賴(lài)錯(cuò)誤。在初始化一個(gè)類(lèi)時(shí),若檢測(cè)到類(lèi)之間循環(huán)依賴(lài)則拋出該異常。

java.lang.ClassFormatError

類(lèi)格式錯(cuò)誤。當(dāng)Java虛擬機(jī)試圖從一個(gè)文件中讀取Java類(lèi),而檢測(cè)到該文件的內(nèi)容不符合類(lèi)的有效格式時(shí)拋出。

java.lang.Error

錯(cuò)誤。是所有錯(cuò)誤的基類(lèi),用于標(biāo)識(shí)嚴(yán)重的程序運(yùn)行問(wèn)題。這些問(wèn)題通常描述一些不應(yīng)被應(yīng)用程序捕獲的反常情況。

java.lang.ExceptionInInitializerError

初始化程序錯(cuò)誤。當(dāng)執(zhí)行一個(gè)類(lèi)的靜態(tài)初始化程序的過(guò)程中,發(fā)生了異常時(shí)拋出。靜態(tài)初始化程序是指直接包含于類(lèi)中的static語(yǔ)句段。

java.lang.IllegalAccessError

違法訪(fǎng)問(wèn)錯(cuò)誤。當(dāng)一個(gè)應(yīng)用試圖訪(fǎng)問(wèn)、修改某個(gè)類(lèi)的域(Field)或者調(diào)用其方法,但是又違反域或方法的可見(jiàn)性聲明,則拋出該異常。

java.lang.IncompatibleClassChangeError

不兼容的類(lèi)變化錯(cuò)誤。當(dāng)正在執(zhí)行的方法所依賴(lài)的類(lèi)定義發(fā)生了不兼容的改變時(shí),拋出該異常。一般在修改了應(yīng)用中的某些類(lèi)的聲明定義而沒(méi)有對(duì)整個(gè)應(yīng)用重新編譯而直接運(yùn)行的情況下,容易引發(fā)該錯(cuò)誤。

java.lang.InstantiationError

實(shí)例化錯(cuò)誤。當(dāng)一個(gè)應(yīng)用試圖通過(guò)Java的new操作符構(gòu)造一個(gè)抽象類(lèi)或者接口時(shí)拋出該異常.

java.lang.InternalError

內(nèi)部錯(cuò)誤。用于指示Java虛擬機(jī)發(fā)生了內(nèi)部錯(cuò)誤。

java.lang.LinkageError

鏈接錯(cuò)誤。該錯(cuò)誤及其所有子類(lèi)指示某個(gè)類(lèi)依賴(lài)于另外一些類(lèi),在該類(lèi)編譯之后,被依賴(lài)的類(lèi)改變了其類(lèi)定義而沒(méi)有重新編譯所有的類(lèi),進(jìn)而引發(fā)錯(cuò)誤的情況。

java.lang.NoClassDefFoundError

未找到類(lèi)定義錯(cuò)誤。當(dāng)Java虛擬機(jī)或者類(lèi)裝載器試圖實(shí)例化某個(gè)類(lèi),而找不到該類(lèi)的定義時(shí)拋出該錯(cuò)誤。

java.lang.NoSuchFieldError

域不存在錯(cuò)誤。當(dāng)應(yīng)用試圖訪(fǎng)問(wèn)或者修改某類(lèi)的某個(gè)域,而該類(lèi)的定義中沒(méi)有該域的定義時(shí)拋出該錯(cuò)誤。

java.lang.NoSuchMethodError

方法不存在錯(cuò)誤。當(dāng)應(yīng)用試圖調(diào)用某類(lèi)的某個(gè)方法,而該類(lèi)的定義中沒(méi)有該方法的定義時(shí)拋出該錯(cuò)誤。

java.lang.OutOfMemoryError

內(nèi)存不足錯(cuò)誤。當(dāng)可用內(nèi)存不足以讓Java虛擬機(jī)分配給一個(gè)對(duì)象時(shí)拋出該錯(cuò)誤。

java.lang.StackOverflowError

堆棧溢出錯(cuò)誤。當(dāng)一個(gè)應(yīng)用遞歸調(diào)用的層次太深而導(dǎo)致堆棧溢出時(shí)拋出該錯(cuò)誤。

java.lang.ThreadDeath

線(xiàn)程結(jié)束。當(dāng)調(diào)用Thread類(lèi)的stop方法時(shí)拋出該錯(cuò)誤,用于指示線(xiàn)程結(jié)束。

java.lang.UnknownError

未知錯(cuò)誤。用于指示Java虛擬機(jī)發(fā)生了未知嚴(yán)重錯(cuò)誤的情況。

java.lang.UnsatisfiedLinkError

未滿(mǎn)足的鏈接錯(cuò)誤。當(dāng)Java虛擬機(jī)未找到某個(gè)類(lèi)的聲明為native方法的本機(jī)語(yǔ)言定義時(shí)拋出。

java.lang.UnsupportedClassVersionError

不支持的類(lèi)版本錯(cuò)誤。當(dāng)Java虛擬機(jī)試圖從讀取某個(gè)類(lèi)文件,但是發(fā)現(xiàn)該文件的主、次版本號(hào)不被當(dāng)前Java虛擬機(jī)支持的時(shí)候,拋出該錯(cuò)誤。

java.lang.VerifyError

驗(yàn)證錯(cuò)誤。當(dāng)驗(yàn)證器檢測(cè)到某個(gè)類(lèi)文件中存在內(nèi)部不兼容或者安全問(wèn)題時(shí)拋出該錯(cuò)誤。

java.lang.VirtualMachineError

虛擬機(jī)錯(cuò)誤。用于指示虛擬機(jī)被破壞或者繼續(xù)執(zhí)行操作所需的資源不足的情況。

java.lang.ArithmeticException

算術(shù)條件異常。譬如:整數(shù)除零等。

java.lang.ArrayIndexOutOfBoundsException

數(shù)組索引越界異常。當(dāng)對(duì)數(shù)組的索引值為負(fù)數(shù)或大于等于數(shù)組大小時(shí)拋出。

java.lang.ArrayStoreException

數(shù)組存儲(chǔ)異常。當(dāng)向數(shù)組中存放非數(shù)組聲明類(lèi)型對(duì)象時(shí)拋出。

java.lang.ClassCastException

類(lèi)造型異常。假設(shè)有類(lèi)A和B(A不是B的父類(lèi)或子類(lèi)),O是A的實(shí)例,那么當(dāng)強(qiáng)制將O構(gòu)造為類(lèi)B的實(shí)例時(shí)拋出該異常。該異常經(jīng)常被稱(chēng)為強(qiáng)制類(lèi)型轉(zhuǎn)換異常。

java.lang.ClassNotFoundException

找不到類(lèi)異常。當(dāng)應(yīng)用試圖根據(jù)字符串形式的類(lèi)名構(gòu)造類(lèi),而在遍歷CLASSPAH之后找不到對(duì)應(yīng)名稱(chēng)的class文件時(shí),拋出該異常。

java.lang.CloneNotSupportedException

不支持克隆異常。當(dāng)沒(méi)有實(shí)現(xiàn)Cloneable接口或者不支持克隆方法時(shí),調(diào)用其clone()方法則拋出該異常。

java.lang.EnumConstantNotPresentException

枚舉常量不存在異常。當(dāng)應(yīng)用試圖通過(guò)名稱(chēng)和枚舉類(lèi)型訪(fǎng)問(wèn)一個(gè)枚舉對(duì)象,但該枚舉對(duì)象并不包含常量時(shí),拋出該異常。

java.lang.Exception

根異常。用以描述應(yīng)用程序希望捕獲的情況。

java.lang.IllegalAccessException

違法的訪(fǎng)問(wèn)異常。當(dāng)應(yīng)用試圖通過(guò)反射方式創(chuàng)建某個(gè)類(lèi)的實(shí)例、訪(fǎng)問(wèn)該類(lèi)屬性、調(diào)用該類(lèi)方法,而當(dāng)時(shí)又無(wú)法訪(fǎng)問(wèn)類(lèi)的、屬性的、方法的或構(gòu)造方法的定義時(shí)拋出該異常。

java.lang.IllegalMonitorStateException

違法的監(jiān)控狀態(tài)異常。當(dāng)某個(gè)線(xiàn)程試圖等待一個(gè)自己并不擁有的對(duì)象(O)的監(jiān)控器或者通知其他線(xiàn)程等待該對(duì)象(O)的監(jiān)控器時(shí),拋出該異常。

java.lang.IllegalStateException

違法的狀態(tài)異常。當(dāng)在Java環(huán)境和應(yīng)用尚未處于某個(gè)方法的合法調(diào)用狀態(tài),而調(diào)用了該方法時(shí),拋出該異常。

java.lang.IllegalThreadStateException

違法的線(xiàn)程狀態(tài)異常。當(dāng)縣城尚未處于某個(gè)方法的合法調(diào)用狀態(tài),而調(diào)用了該方法時(shí),拋出異常。

java.lang.IndexOutOfBoundsException

索引越界異常。當(dāng)訪(fǎng)問(wèn)某個(gè)序列的索引值小于0或大于等于序列大小時(shí),拋出該異常。

java.lang.InstantiationException

實(shí)例化異常。當(dāng)試圖通過(guò)newInstance()方法創(chuàng)建某個(gè)類(lèi)的實(shí)例,而該類(lèi)是一個(gè)抽象類(lèi)或接口時(shí),拋出該異常。

java.lang.InterruptedException

被中止異常。當(dāng)某個(gè)線(xiàn)程處于長(zhǎng)時(shí)間的等待、休眠或其他暫停狀態(tài),而此時(shí)其他的線(xiàn)程通過(guò)Thread的interrupt方法終止該線(xiàn)程時(shí)拋出該異常。

java.lang.NegativeArraySizeException

數(shù)組大小為負(fù)值異常。當(dāng)使用負(fù)數(shù)大小值創(chuàng)建數(shù)組時(shí)拋出該異常。

java.lang.NoSuchFieldException

屬性不存在異常。當(dāng)訪(fǎng)問(wèn)某個(gè)類(lèi)的不存在的屬性時(shí)拋出該異常。

java.lang.NoSuchMethodException

方法不存在異常。當(dāng)訪(fǎng)問(wèn)某個(gè)類(lèi)的不存在的方法時(shí)拋出該異常。

java.lang.NullPointerException

空指針異常。當(dāng)應(yīng)用試圖在要求使用對(duì)象的地方使用了null時(shí),拋出該異常。譬如:調(diào)用null對(duì)象的實(shí)例方法、訪(fǎng)問(wèn)null對(duì)象的屬性、計(jì)算null對(duì)象的長(zhǎng)度、使用throw語(yǔ)句拋出null等等。

java.lang.NumberFormatException

數(shù)字格式異常。當(dāng)試圖將一個(gè)String轉(zhuǎn)換為指定的數(shù)字類(lèi)型,而該字符串確不滿(mǎn)足數(shù)字類(lèi)型要求的格式時(shí),拋出該異常。

java.lang.RuntimeException

運(yùn)行時(shí)異常。是所有Java虛擬機(jī)正常操作期間可以被拋出的異常的父類(lèi)。

java.lang.SecurityException

安全異常。由安全管理器拋出,用于指示違反安全情況的異常。

java.lang.StringIndexOutOfBoundsException

字符串索引越界異常。當(dāng)使用索引值訪(fǎng)問(wèn)某個(gè)字符串中的字符,而該索引值小于0或大于等于序列大小時(shí),拋出該異常。

java.lang.TypeNotPresentException

類(lèi)型不存在異常。當(dāng)應(yīng)用試圖以某個(gè)類(lèi)型名稱(chēng)的字符串表達(dá)方式訪(fǎng)問(wèn)該類(lèi)型,但是根據(jù)給定的名稱(chēng)又找不到該類(lèi)型是拋出該異常。該異常與ClassNotFoundException的區(qū)別在于該異常是unchecked(不被檢查)異常,而ClassNotFoundException是checked(被檢查)異常。

java.lang.UnsupportedOperationException

不支持的方法異常。指明請(qǐng)求的方法不被支持情況的異常。

異常

javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字)

可能原因

action沒(méi)有再struts-config.xml 中定義,或沒(méi)有找到匹配的action,例如在JSP文件中使用 html:form action="Login.do".將表單提交給Login.do處理,如果出現(xiàn)上述異常,請(qǐng)查看struts-config.xml中的定義部分,有時(shí)可能是打錯(cuò)了字符或者是某些不符合規(guī)則,可以使用strutsconsole工具來(lái)檢查。

-----------------------------------------------------------------------------------------------------------------

異常

org.apache.jasper.JasperException: Cannot retrieve definition for form bean null

可能原因

這個(gè)異常是因?yàn)镾truts根據(jù)struts-config.xml中的mapping沒(méi)有找到action期望的form bean。大部分的情況可能是因?yàn)樵趂orm-bean中設(shè)置的name屬性和action中設(shè)置的name屬性不匹配所致。換句話(huà)說(shuō),action和form都應(yīng)該各自有一個(gè)name屬性,并且要精確匹配,包括大小寫(xiě)。這個(gè)錯(cuò)誤當(dāng)沒(méi)有name屬性和action關(guān)聯(lián)時(shí)也會(huì)發(fā)生,如果沒(méi)有在action中指定name屬性,那么就沒(méi)有name屬性和action相關(guān)聯(lián)。當(dāng)然當(dāng)action制作某些控制時(shí),譬如根據(jù)參數(shù)值跳轉(zhuǎn)到相應(yīng)的jsp頁(yè)面,而不是處理表單數(shù)據(jù),這是就不用name屬性,這也是action的使用方法之一。

-----------------------------------------------------------------------------------------------------------------

異常

No action instance for path /xxxx could be created

可能原因

特別提示:因?yàn)橛泻芏嘀星闆r會(huì)導(dǎo)致這個(gè)錯(cuò)誤的發(fā)生,所以推薦大家調(diào)高你的web服務(wù)器的日志/調(diào)試級(jí)別,這樣可以從更多的信息中看到潛在的、在試圖創(chuàng)建action類(lèi)時(shí)發(fā)生的錯(cuò)誤,這個(gè)action類(lèi)你已經(jīng)在struts-config.xml中設(shè)置了關(guān)聯(lián)(即添加了action標(biāo)簽)。

在struts-config.xml中通過(guò)action標(biāo)簽的class屬性指定的action類(lèi)不能被找到有很多種原因,例如:定位編譯后的.class文件失敗。Failure to place compiled .class file for the action in the classpath (在web開(kāi)發(fā)中,class的的位置在r WEB-INF/classes,所以你的action class必須要在這個(gè)目錄下。例如你的action類(lèi)位于WEB-INF/classes/action/Login.class,那么在struts-config.xml中設(shè)置action的屬性type時(shí)就是action.Login).

拼寫(xiě)錯(cuò)誤,這個(gè)也時(shí)有發(fā)生,并且不易找到,特別注意第一個(gè)字母的大小寫(xiě)和包的名稱(chēng)。

-----------------------------------------------------------------------------------------------------------------

異常

javax.servlet.jsp.JspException: No getter method for property username of bean org.apache.struts.taglib.html.BEAN

可能原因

沒(méi)有位form bean中的某個(gè)變量定義getter 方法

這個(gè)錯(cuò)誤主要發(fā)生在表單提交的FormBean中,用struts標(biāo)記html:text property=”username”時(shí),在FormBean中必須有一個(gè)getUsername()方法。注意字母“U”。

-----------------------------------------------------------------------------------------------------------------

異常

java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm

可能原因

這個(gè)錯(cuò)誤主要發(fā)生在在classpath中找不到相應(yīng)的Java .class文件。如果這個(gè)錯(cuò)誤發(fā)生在web應(yīng)用程序的運(yùn)行時(shí),主要是因?yàn)橹付ǖ腸lass文件不在web server的classpath中(/WEB-INF/classes 和 /WEB-INF/lib)。在上面的錯(cuò)誤中,原因是找不到ActionForm類(lèi)。

-----------------------------------------------------------------------------------------------------------------

異常

javax.servlet.jsp.JspException: Exception creating bean of class org.apache.struts.action.ActionForm: {1}

可能原因

Instantiating Struts-provided ActionForm class directly instead of instantiating a class derived off ActionForm. This mightoccur implicitly if you specify that a form-bean is this Struts ActionForm class rather than specifying a child of this classfor the form-bean.

Not associating an ActionForm-descended class with an action can also lead to this error.

-----------------------------------------------------------------------------------------------------------------

異常

javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection

可能原因

不是標(biāo)識(shí)Struts actionServlet的servlet標(biāo)記就是映射.do擴(kuò)展名的sevlet-mapping標(biāo)記或者兩者都沒(méi)有在web.xml中聲明。

在struts-config.xml中的打字或者拼寫(xiě)錯(cuò)誤也可導(dǎo)致這個(gè)異常的發(fā)生。例如缺少一個(gè)標(biāo)記的關(guān)閉符號(hào)/。最好使用struts console工具檢查一下。

另外,load-on-startup必須在web.xml中聲明,這要么是一個(gè)空標(biāo)記,要么指定一個(gè)數(shù)值,這個(gè)數(shù)值用來(lái)表servlet運(yùn)行的優(yōu)先級(jí),數(shù)值越大優(yōu)先級(jí)越低。

還有一個(gè)和使用load-on-startup有關(guān)的是使用Struts預(yù)編譯JSP文件時(shí)也可能導(dǎo)致這個(gè)異常。

-----------------------------------------------------------------------------------------------------------------

異常

java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils.java:1223)

可能原因

在struts-config.xml中的forward元素缺少path屬性。例如應(yīng)該是如下形式:

forward name="userhome" path="/user/userhome.jsp"/

-----------------------------------------------------------------------------------------------------------------

異常

javax.servlet.jsp.JspException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope

Probable Causes

試圖在Struts的form標(biāo)記外使用form的子元素。這常常發(fā)生在你在/html:form后面使用Struts的html標(biāo)記。另外要注意可能你不經(jīng)意使用的無(wú)主體的標(biāo)記,如html:form … /,這樣web 服務(wù)器解析時(shí)就當(dāng)作一個(gè)無(wú)主體的標(biāo)記,隨后使用的所有html標(biāo)記都被認(rèn)為是在這個(gè)標(biāo)記之外的,如又使用了html:text property=”id”還有就是在使用taglib引入HTML標(biāo)記庫(kù)時(shí),你使用的prefix的值不是html。

-----------------------------------------------------------------------------------------------------------------

異常

javax.servlet.jsp.JspException: Missing message for key xx.xx.xx

Probable Causes

這個(gè)key的值對(duì)沒(méi)有在資源文件ApplicationResources.properties中定義。如果你使用eclipse時(shí)經(jīng)常碰到這樣的情況,當(dāng)項(xiàng)目重新編譯時(shí),eclipse會(huì)自動(dòng)將classes目錄下的資源文件刪除。

資源文件ApplicationResources.properties 不在classpath中應(yīng)將資源文件放到 WEB-INF/classes 目錄下,當(dāng)然要在struts-config.xml中定義)

-----------------------------------------------------------------------------------------------------------------

異常

Cannot find message resources under key org.apache.struts.action.MESSAGE

可能原因

很顯然,這個(gè)錯(cuò)誤是發(fā)生在使用資源文件時(shí),而Struts沒(méi)有找到資源文件。

Implicitly trying to use message resources that are not available (such as using empty html:options tag instead of specifyingthe options in its body -- this assumes options are specified in ApplicationResources.properties file)

XML parser issues -- too many, too few, incorrect/incompatible versions

-----------------------------------------------------------------------------------------------------------------

異常

Strange and seemingly random characters in HTML and on screen, but not in original JSP or servlet.

可能原因

混和使用Struts的html:form標(biāo)記和標(biāo)準(zhǔn)的HTML標(biāo)記不正確。

使用的編碼樣式在本頁(yè)中不支持。

-----------------------------------------------------------------------------------------------------------------

異常

"Document contained no data" in Netscape

No data rendered (completely empty) page in Microsoft Internet Explorer

可能原因

使用一個(gè)Action的派生類(lèi)而沒(méi)有實(shí)現(xiàn)perform()方法或execute()方法。在Struts1.0中實(shí)現(xiàn)的是perform()方法,在Struts1.1中實(shí)現(xiàn)的是execute()方法,但Struts1.1向后兼容perform()方法。但你使用Struts1.1創(chuàng)建一個(gè)Action的派生類(lèi),并且實(shí)現(xiàn)了execute()方法,而你在Struts1.0中運(yùn)行的話(huà),就會(huì)得到"Document contained nodata" error message in Netscape or a completely empty (no HTML whatsoever) page rendered in Microsoft Internet Explorer.”的錯(cuò)誤信息。

---------------------------------------------------------------------------------------------------------------------------

異常

ServletException: BeanUtils.populate

解決方案

在用Struts上傳文件時(shí),遇到了javax.servlet.ServletException: BeanUtils.populate異常。

我的ActionServlet并沒(méi)有用到BeanUtils這些工具類(lèi)。后來(lái)仔細(xì)檢查代碼發(fā)現(xiàn)是在jsp文件里的form忘了加enctype="multipart/form-data" 了。所以寫(xiě)程序遇到錯(cuò)誤或異常應(yīng)該從多方面考慮問(wèn)題存在的可能性,想到系統(tǒng)提示信息以外的東西。

----------------------------------------------------------------------------------------------------------------------------

1. 定義Action后, 如果指定了name, 那么必須要定義一個(gè)與它同名的FormBean才能進(jìn)行form映射.2. 如果定義Action后, 提交頁(yè)面時(shí)出現(xiàn) "No input attribute for mapping path..." 錯(cuò)誤, 則需要在其input屬性中定義轉(zhuǎn)向的頁(yè)面.3. 如果插入新的數(shù)據(jù)時(shí)出現(xiàn) "Batch update row count wrong:..." 錯(cuò)誤, 則說(shuō)明XXX.hbm.xml中指定的key的類(lèi)型為原始類(lèi)型(int, long),因?yàn)檫@種類(lèi)型會(huì)自動(dòng)分配值, 而這個(gè)值往往會(huì)讓系統(tǒng)認(rèn)為已經(jīng)存在該記錄, 正確的方法是使用java.lang.Integer或java.lang.Long對(duì)象.4. 如果插入數(shù)據(jù)時(shí)出現(xiàn) "argument type mismatch" 錯(cuò)誤, 可能是你使用了Date等特殊對(duì)象, 因?yàn)閟truts不能自動(dòng)從String型轉(zhuǎn)換成Date型,所以, 你需要在A(yíng)ction中手動(dòng)把String型轉(zhuǎn)換成Date型.5. Hibernate中, Query的iterator()比list()方法快很多.6. 如果出現(xiàn) "equal symbol expected" 錯(cuò)誤, 說(shuō)明你的strtus標(biāo)簽中包含另一個(gè)標(biāo)簽或者變量, 例如:

html:select property="test" onchange="%=test%"/

或者

html:hidden property="test" value="bean:write name="t" property="p"/"/

這樣的情況...

---------------------------------------------------------------------------------------------------------------------------

錯(cuò)誤:Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update原因與解決: 因?yàn)镠ibernate Tools(或者Eclipse本身的Database Explorer)生成*.hbn.xml工具中包含有catalog="***"(*表示數(shù)據(jù)庫(kù)名稱(chēng))這樣的屬性,將該屬性刪除就可以了

---------------------------------------------------------------------------------------------------------------------------

錯(cuò)誤:org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)

原因與解決:

方法1 刪除Set方的cascade

方法2 解決關(guān)聯(lián)關(guān)系后,再刪除

方法3 在many-to-one方增加cascade 但值不能是none

最后一招:

檢查一下hashCode equals是否使用了id作為唯一標(biāo)示的選項(xiàng)了;我用uuid.hex時(shí)是沒(méi)有問(wèn)題的;但是用了native,就不行了,怎么辦?刪除?。?/p>

----------------------------------------------------------------------------------------------------------------------------

問(wèn)題:今天用Tomcat 5.5.12,發(fā)現(xiàn)原來(lái)很好用的系統(tǒng)不能用了,反復(fù)測(cè)試發(fā)現(xiàn)頁(yè)面中不能包含 taglib,否則會(huì)出現(xiàn)以下提示:HTTP Status 500 -type Exception reportMessage description The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: /index.jsp(1,1) Unable to read TLD "META-INF/tlds/struts-bean.tld" from JAR file"file:*****/WEB-INF/lib/struts.jar":原因:更新了工程用的lib文件夾下的jar,發(fā)布時(shí)也發(fā)布了servlet.jar和jsp-api.jar。解決:把jsp-api.jar刪除就解決這個(gè)問(wèn)題了。-----------------------------------------------------------------------------------------------------------------------------

錯(cuò)誤: java.lang.NullPointerException

原因: 發(fā)現(xiàn) dao 實(shí)例、 manage 實(shí)例等需要注入的東西沒(méi)有被注入(俗稱(chēng)空指針異常)解決:這個(gè)時(shí)候,你應(yīng)該查看日志文件;默認(rèn)是應(yīng)用服務(wù)器的 log 文件,比如 Tomcat 就是 [Tomcat 安裝目錄 ]/logs ;你會(huì)發(fā)現(xiàn)提示你:可能是:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sf' defined in ServletContextresource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception isorg.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xmlorg.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xml……………………….Caused by: java.io.FileNotFoundException: src\hibernate.cfg.xml可能是:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined inServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception isorg.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not foundorg.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not found然后你就知道原因是因?yàn)榕渲梦募慕馕龀隽隋e(cuò)誤,這個(gè)通過(guò) Web 頁(yè)面是看不出來(lái)的。更多的是持久化影射文件出的錯(cuò)誤;導(dǎo)致了沒(méi)有被解析;當(dāng)然你需要的功能就無(wú)法使用了。

----------------------------------------------------------------------------------------------------------------------------

錯(cuò)誤:StandardWrapperValve[action]: Servlet.service() for servlet action threw exception

javax.servlet.jsp.JspException: Cannot retrieve mapping for action /settlementTypeManage

或者: type Status report message Servlet action is not available description The requested resource (Servlet action is not available) is not available.

原因: 同 上

----------------------------------------------------------------------------------------------------------------------------

錯(cuò)誤StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exceptionjava.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei界面錯(cuò)誤具體描述:

org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTei

原因與解決: 方案一你的“html:”開(kāi)頭的標(biāo)簽沒(méi)有放在一個(gè)html:form中 方案二重新啟動(dòng)你的應(yīng)用服務(wù)器,自動(dòng)就沒(méi)有這個(gè)問(wèn)題

用java編寫(xiě)一個(gè)程序,拋出三種異常

你好,按照你的要求代碼如下,你運(yùn)行時(shí),可以選擇性的注釋?zhuān)热缫吹降诙€(gè)異常,就要把第一段會(huì)拋出異常的代碼注釋掉就行了,看第三個(gè)異常同理

public class A {

public static void main(String[] args) {

try {

System.out.println(1 / 0);//會(huì)拋出ArithmeticException

System.out.println(new int[] {}[0]);//會(huì)拋出ArrayIndexOutOfBoundsException

String str = null;

System.out.println(str.toString());//會(huì)拋出NullPointerException

} catch (ArithmeticException e) {

System.out.println("算術(shù)異常");

} catch (ArrayIndexOutOfBoundsException e) {

System.out.println("數(shù)組下標(biāo)越界異常");

} catch (NullPointerException e) {

System.out.println("空指針異常");

}

}

}

網(wǎng)頁(yè)題目:java實(shí)現(xiàn)算數(shù)異常代碼 java算數(shù)測(cè)試代碼
URL分享:http://muchs.cn/article18/ddiiidp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、軟件開(kāi)發(fā)響應(yīng)式網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司