導航:首頁 > 程序命令 > 程序員異常簡介

程序員異常簡介

發布時間:2023-05-24 17:44:07

⑴ 北京電腦培訓分享java中異常與錯誤的處理方法

Java中的異常處理機制已經比較成熟,我們的Java程序到處充滿了異常的可能,如果對這些異常不做預先的處理,那麼將來程序崩潰就無從調試,很難找到異常所在的位置。北京電腦培訓將探討一下Java中異常與錯誤的處理方法,一起來看看。



異常與錯誤:


異常:


在Java中程序的錯誤主要是語法錯誤和語義錯誤,一個程序在編譯和運行時出現的錯誤我們統一稱之為異常,它是VM(虛擬機)通知你的一種方式,通過這種方式,VM讓你知道,你(開發人員)已經犯了個錯誤,現在有一個機會來修改它。Java中正滑悔使用異常類來表示異常,不同的異常類代表了不同的異常。但是在Java中所有的異常都有一個基類,叫做Exception。


錯誤:


它指的是一個合理的應用程序不能截獲的嚴重的問題。大多數都是反常的情況。錯誤是VM的一個故障(雖然它可以是任何系舉正統級的服務)。所以,錯誤是很難處理的,一般的開發人員(當然不是你)是無法處理這些錯誤的,比如內存溢出。和異常一樣,在Java中用錯誤類來表示錯誤,不同的錯誤類代表了不同的錯誤。但是在Java中所有的錯誤都有一個基類,叫做Error。


綜上,我們可以知道異常和錯誤最本質的區別就是異常能被開發人員處理而錯誤時系統本來自帶的,一般無法處理也不需要我們讓悶程序員來處理。


1.一個異常是在一個程序執行過程中出現的一個事件,它中斷了正常指令的運行


2.錯誤,偏離了可接受的代碼行為的一個動作或實例


異常的結構分類:


1、運行時異常(未檢查異常)


2、編譯時異常(已檢查異常)


運行異常即是RuntimeException;其餘的全部為編譯異常


在Java中異常Exception和錯誤Error有個共同的父類Throwable。


ErrorException


runtimeException幾個子類


1、java.lang.


數組索引越界異常。當對數組的索引值為負數或大於等於數組大小時拋出。


2、java.lang.ArithmeticException


算術條件異常。譬如:整數除零等。


3、java.lang.NullPointerException


空指針異常。當應用試圖在要求使用對象的地方使用了null時,拋出該異常。譬如:調用null對象的實例方法、訪問null對象的


屬性、計算null對象的長度、使用throw語句拋出null等等


4、java.lang.ClassNotFoundException


找不到類異常。當應用試圖根據字元串形式的類名構造類,而在遍歷CLASSPAH之後找不到對應名稱的class文件時,拋出


該異常。


⑵ 程序員最容易出現什麼問題

第一,內存泄漏
C/C++程序還可能產生另一個指針問題:丟失對已分配內存的引用。當內存是在子程序中被分 配時,通常會出現這種問題,其結果是程序從子程序中返回時不會釋放內存。如此一來,對已分配的內存的引用就會丟失,只要操作系統還在運行鉛戚核中,則進程就會一 直使用該內存。這樣的結果是,曾佔用更多的內存的程序會降低系統性能,直到機器完全停止工作,才會完全清空內存。
第二,C指針錯誤
用C或C++編寫的程序,如Web伺服器API模塊,有可能導致系統的崩潰,因為只要間接引 用指針(即,訪問指向的內存)中出現一個錯誤,就會導致操作系統終止所有程序。另外,使用了糟糕的C指針的Java模擬量(analog)將訪問一個空的 對象引用。Java中的空引用通常不會導致立刻退出JVM,但是前提是程序員能夠使用異常處理方法恰當地處理錯誤。在這方面,Java無需過多的關注,但 使用Java對可靠性進行額槐掘外的度量則會對性能產生一些負面影響。
第三,資料庫中的臨時表不夠用
許多資料庫的臨時表(cursor)數目都是固定的,臨時表即保留查詢結果的內存區域。在臨時表中的數據都被讀取後,臨時表便會被釋放,但大量同時進行的查詢可能耗盡數目固定的所有臨時表。這時,其他的查詢就需要列隊等候,直到有臨時表被釋放時才能再繼續運行。
第四,線程死鎖
由多線程帶來的性能改善是以可靠性為代價的,主要是因為這樣有可能產生線程死鎖。線程死鎖 時,第一個線程等待第二個線程釋放資源,而同時第二個線程又在等待第一個線程釋放資源。我們來想像這樣一種情形:在人行道上兩個人迎面相遇,為了給對方讓 道,兩人同時向一側邁出一步,雙方無法通過,又同時向另一側邁出一步,這樣還是無法通過。雙方都以同樣的邁步方式堵住了對方的去路。假設這種情況一直持續 下去,這樣就不難理解為何會發生死鎖現象了。
第五,磁碟已滿
導致系統無法正常運行的最可能的原因是磁碟已滿。一個好的網路管理員會密切關注磁碟的使用情況,隔一定的時間,就需要將磁碟上的一些負載轉存到備份存儲介質中(例如磁帶)。
日誌文件會很快用光所有的磁碟空間。Web伺服器的日誌文件、SQL*Net的日誌文件、 JDBC日誌文件,以及應用程序伺服器日誌文件均與內存泄漏有同等的危害。可以採取措施將日誌文件保存在與操作系統不同的文件系統中。日誌文件系統空間已 滿時Web伺服器也會被掛起,但機器自身被掛起的幾率已大大減低。
第六,伺服器超載
Netscape Web伺服器的每個連接都使用一個線程。Netscape Enterprise Web伺服器會在線程用完後掛起,而不為已存在的連接提供任何服務。如果有一種負載分布機制可以檢測到伺服器沒有響應,則該伺服器上仔棗的負載就可以分布到其 它的Web伺服器上,這可能會致使這些伺服器一個接一個地用光所有的線程。這樣一來,整個伺服器組都會被掛起。操作系統級別可能還在不斷地接收新的連接, 而應用程序(Web伺服器)卻無法為這些連接提供服務。用戶可以在瀏覽器狀態行上看到connected(已連接)的提示消息,但這以後什麼也不會發生。
總之,還有許多因素也極有可能導致Web香港伺服器租用或香港伺服器託管站點無法工作。有許多種原因可能導致Web站點無法正常工作,這使得系統地檢查所有問題變得很困難。

⑶ 編譯器不會強製程序員處理哪種異常

在java編譯器中,是不會強制要求程序員進行處理Runtime異常的。

RuntimeException類及其子類的實例被稱為運行時異常,即UnChecked Exception。

我們較為常見的NullPointerException(空指針異常)和 IndexOutOfBoundsException(數組越界異常),對於這些Runtime異常。

在java編譯器中是不會強制要求程序員進行處理或聲明的(有些IDE可能會給可能出現Runtime異常問題的提示,但不會報錯)。

常見的RunTime異常幾種如下:

NullPointerException - 空指針引用異常。

ClassCastException - 類型強制轉換異常。

IllegalArgumentException - 傳遞非法參數異常。

ArithmeticException - 算術運算異常。

ArrayStoreException - 向數組中存放與聲明類型不兼容對象異常。

IndexOutOfBoundsException - 下標越界異常。

NegativeArraySizeException - 創建一個大小為負數的數組錯誤異常。

NumberFormatException - 數字格式異常。

SecurityException - 安全異常。

UnsupportedOperationException - 不支持的操作異常。

⑷ Java中運行異常和一般異常的區別

Exception是代表了真正實際意義上的異常對象的猜陪根基類。Exception和從它派生而來的所有異常都是應用程序能夠捕獲到的,並且可以進行異常錯誤恢復處理的異常類型。

Error則表示出現了一個非常嚴重的異常錯誤,並且這個錯誤可能是應用程序所不能恢復的,例如LinkageError,或ThreadDeath等。由Java虛擬機生成並拋出,Java程序不做處理。

java.long.Error和java.lang.RuntimeException(運行時異常)的子類免於編譯時的檢查。鬧兆皮RuntimeException異常由系統檢測,用戶的Java程序可不做處理,系液差統將它們交給預設的異常處理程序。

⑸ 騰訊知名游戲程序員毛星雲墜樓身亡,墜亡前有何異常

有知情者稱:他領導研發了某款3 A游戲,但因為研發過程遭遇瓶頸,進度遲緩,導致團隊整體業績下滑、年終獎金銳減。毛**在和上級談判失敗之後選擇了跳樓自殺,這是一起令人悲痛的事例。有網友透露毛**患有抑鬱症,前段時間曾住院治療,但是沒想到他選擇了一個悲劇的方式結束生命,此時,我們所能做得就是不聽謠、不信謠、不傳謠,靜靜地等待相關部門核查,讓逝者安息,從精神分析角度探究,對此事件嘲諷者大致有五種心理:

第五、敵視心理。此人習慣性以仇視的目光對待別人——這種心理通常來源於童年時期,他/她在家庭或社會環境中感受不到親情溫暖。具有敵視心理的人在遭遇外界不良刺激後,可能會逐漸演化為犯罪,“嘲諷他人”只是他/她的常規操作。

⑹ java的異常處理機制中,如何判斷代碼塊中是否會發生異常條件是什麼·

1. 異常機制
異常機制指當程序出現錯誤程序何處理具體來說異常機制提供了程序退出安全通道當出現錯誤程序執行流程發生改變程序控制權轉移異常處理器
傳統處理異常辦法函數返回特殊結來表示出現異常(通常特殊結大家約定俗稱)調用該函數程序負責檢查並分析函數改彎返回結樣做有下弊端:例函數返回-1代表出現異常函數確實要返回-1正確值時會出現混淆;讀性降低程序代碼與處理異常代碼混爹起;由調用函數程序來分析錯誤要求客戶程序員對庫函數有深了解
異常處理流程:
① 遇錯誤方法立即結束並返回值;同時拋出異常對象
② 調用該方法程序也會繼續執行下去而搜索處理該異常異常處理器並執行其代碼

2 異常分類
異常分類:
① 異常繼承結構:基類ThrowableError和Exception繼承ThrowableRuntimeException和IOException等繼承Exception具體RuntimeException繼承RuntimeException
② Error和RuntimeException及其子類成未檢查異常(unchecked)其異常成已檢查異常(checked)

每類型異常特點
Error體系 :
Error類體系描述了Java運行系統內部錯誤及資源耗盡情形應用程序應該拋出種類型對象(般由虛擬機拋出)出現種錯誤除了盡力使程序安全退出外其方面無能力所進行程序設計時應該更關注Exception體系

Exception體系包括RuntimeException體系和其非RuntimeException體系 :
① RuntimeException:RuntimeException體系包括錯誤類型轉換、數組越界訪問和試圖訪問空指針等等處理RuntimeException原則:出現RuntimeException定程序員錯誤例通過檢查數組下標和數組邊界來避免數組越界訪問異常
②其非RuntimeException(IOException等等):類異常般外部錯誤例試圖從文件尾讀取數據等並程序本身錯誤而應用環境出現外部錯誤

與C++異常分類同 :
① JavaRuntimeException類名起並恰當因任何異常都運行時出現(編譯時出現錯誤並異常換句說異常了解決程序運行時出現錯誤)
② C++logic_error與JavaRuntimeException等價而runtime_error與Java非RuntimeException類型異常等價

3 異常使用方法
聲明方法拋出異常
① 語法:throws(略)
② 要聲明方法拋出異常
方法否拋出異常與方法返回值類型樣重要假設方法拋出異常確沒有聲明該方法拋出異常客戶程序員調用方法而且用編寫處理異常代碼旦出現異常異常沒有合適異常控制器來解決
③ 拋出異常定已檢查異常
RuntimeException與Error任何代碼產生們需要由程序員顯示拋出旦出現錯誤相應異常會被自動拋出而已檢查異常由程序員拋出分兩哪殲檔種情況:客戶程序員調用會拋出異常庫函數(庫函數異常由庫程序員拋出);客戶程序員自己使用throw語句拋出異常遇Error程序員般無能力;遇RuntimeException定程序存邏輯錯誤要對程序進行修改(相當於調試種方法);只有已檢查異常才程序員所關心程序應該且僅應該拋出或處理已檢查異常
注意:覆蓋父類某方法子類方法能拋出比父類方法更多異常所有時設計父類方法時會聲明拋出異常實際實現方法代碼卻並拋出異常樣做目了方便子類方法覆蓋父類方法時拋出異常

何拋出異常
① 語法:throw(略)
② 拋出異常對於異常對象真正有用信息時異常對象類型而異常對象本身毫無意義比異常對象類型ClassCastException類名唯有用信息所選擇拋出異常時關鍵選擇異常類名能夠明確說明異常情況類
③ 異常對象通常有兩種構造函數:種無參數構造函數;另種帶字元串構造函數字元串作異常對象除了類李亂型名外額外說明
④ 創建自己異常:當Java內置異常都能明確說明異常情況時候需要創建自己異常需要注意唯有用類型名信息所要異常類設計上花費精力

捕獲異常
異常沒有被處理對於非圖形界面程序而言該程序會被止並輸出異常信息;對於圖形界面程序也會輸出異常信息程序並止而返回用錯誤頁面
語法:try、catch和finally(略)控制器模塊必須緊接try塊面若擲出異常異常控制機制會搜尋參數與異常類型相符第控制器隨會進入catch 從句並認異常已得控制旦catch 從句結束對控制器搜索也會停止
捕獲多異常(注意語法與捕獲順序)(略)
finally用法與異常處理流程(略)
異常處理做對於Java來說由於有了垃圾收集所異常處理並需要回收內存依有些資源需要程序員來收集比文件、網路連接和圖片等資源
應該聲明方法拋出異常還方法捕獲異常原則:捕捉並處理哪些知道何處理異常而傳遞哪些知道何處理異常
再次拋出異常
①要再次拋出異常 本級只能處理部分內容有些處理需要更高級環境完成所應該再次拋出異常樣使每級異常處理器處理能夠處理異常
②異常處理流程 :對應與同try塊catch塊被忽略拋出異常進入更高級

4 關於異常其問題
① 過度使用異常 :首先使用異常方便所程序員般再願意編寫處理錯誤代碼而僅僅簡簡單單拋出異常樣做對對於完全已知錯誤應該編寫處理種錯誤代碼增加程序魯棒性另外異常機制效率差
② 異常與普通錯誤區分開:對於普通完全致錯誤應該編寫處理種錯誤代碼增加程序魯棒性只有外部能確定和預知運行時錯誤才需要使用異常
③ 異常對象包含信息 :般情況下異常對象唯有用信息類型信息使用異常帶字元串構造函數時字元串還作額外信息調用異常對象getMessage()、toString()或者printStackTrace()方法分別得異常對象額外信息、類名和調用堆棧信息並且種包含信息前種超集
5 常見異常
算術異常類:ArithmeticExecption

空指針異常類:NullPointerException

類型強制轉換異常:ClassCastException

數組負下標異常:NegativeArrayException

數組下標越界異常:

違背安全原則異常:SecturityException

文件已結束異常:EOFException

文件未找異常:FileNotFoundException

字元串轉換數字異常:NumberFormatException

操作資料庫異常:SQLException

輸入輸出異常:IOException

方法未找異常:NoSuchMethodException

python異常和錯誤的區別

什麼是錯誤?
錯誤分為兩種情況:第一種語法錯誤,代碼不符合解釋器或者編譯器語法;第二種邏輯錯誤,不完整或者不合法輸入或者計算出現問題。
什麼是異常?
所謂的異常就是執行過程中出現萬體導致程序無法執行,同樣分為兩種情況:第一種程序遇到邏輯或者演算法問題;第二種運行過程中計算機錯誤,內存不夠或者IO錯誤。
Python中錯誤和異常有什麼區別?
錯誤是代碼運行前的語法或者邏輯錯誤,語法錯誤在執行前修改,邏輯錯誤無法修改;
而異常分為兩個步驟,異常產生,檢查到錯誤且解釋器認為是異常,拋出異常;第二是異常處理,截獲異常,忽略或者終止程序處理異常。
從軟體方面來說,錯誤是語法或者邏輯上的問題,語法錯誤指示軟體的結構上有錯誤,導致不能被解釋器解釋或者編譯器無法編譯,這些錯誤必須在程序執行前進行糾正;當程序語法正確後,剩下的就是邏輯錯誤問題,邏輯錯誤可能是由於不完整或不合法的輸入導致,在其他情況下,可能是邏輯無法生成、計算或輸出結果需要的過程無法執行。這些錯誤通常分別被稱為域錯誤和范圍錯誤。
當Python檢測到一個錯誤時,解釋器就會指出當前已經無法繼續執行下去,這時就出現異常。
而異常它是因為程序出現了錯誤而在正常控制流以外採取的行為,這個行為分為兩個階段:首先是引起異常發生的錯誤,然後是檢測階段;
第一個階段是在發生了一個異常條件後發生的,只要檢測到錯誤並且意識到異常條件,解釋器會引發一個異常,引發也可以叫作觸發或生成,解釋器通過它通知當前控制流有錯誤發生;
Python也允許程序員自己引發異常,無論是Python解釋器還是程序員引發的,異常就是錯誤發生的信號,當前流將被打斷,用來處理這個錯誤並採取相應的操作,這就是第二個階段。
對異常的處理發生在第二階段,異常引發後,可以調用很多不同的操作,可以是忽視錯誤,或是減輕問題的影響後設法繼續執行程序,所以的這些操作都代表一種繼續,或是控制的分支,關鍵是程序員在錯誤發生時可以指示程序如何執行。
類似Python這樣支持引發和處理異常的語言,可以讓開發人員在錯誤發生時更直接地控制它們,程序員不僅僅有了檢測錯誤的能力,還可以在它們發生時採取更可靠的補救措施。

⑻ java assertionerror是什麼異常

1. java.lang.nullpointerexception
這個異常大家肯定都經常遇到,異早穗常的解釋是"程序遇上了空指針",簡單地說就是調用了未經初始化的對象或者是不存在的對象,這個錯誤經常出現在創建圖片,調用數組這陸李卜些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。對數組操作中出現空指擾帶針,很多情況下是一些剛開始學習編程的朋友常犯的錯誤,即把數組的初始化和數組元素的初始化混淆起來了。數組的初始化是對數組分配需要的空間,而初始化後的數組,其中的元素並沒有實例化,依然是空的,所以還需要對每個元素都進行初始化(如果要調用的話)

2. java.lang.classnotfoundexception
這個異常是很多原本在jb等開發環境中開發的程序員,把jb下的程序包放在wtk下編譯經常出現的問題,異常的解釋是"指定的類不存在",這里主要考慮一下類的名稱和路徑是否正確即可,如果是在jb下做的程序包,一般都是默認加上package的,所以轉到wtk下後要注意把package的路徑加上。

3. java.lang.arithmeticexception
這個異常的解釋是"數學運算異常",比如程序中出現了除以零這樣的運算就會出這樣的異常,對這種異常,大家就要好好檢查一下自己程序中涉及到數學運算的地方,公式是不是有不妥了。

4. java.lang.
這個異常相信很多朋友也經常遇到過,異常的解釋是"數組下標越界",現在程序中大多都有對數組的操作,因此在調用數組的時候一定要認真檢查,看自己調用的下標是不是超出了數組的范圍,一般來說,顯示(即直接用常數當下標)調用不太容易出這樣的錯,但隱式(即用變數表示下標)調用就經常出錯了,還有一種情況,是程序中定義的數組的長度是通過某些特定方法決定的,不是事先聲明的,這個時候,最好先查看一下數組的length,以免出現這個異常。

5. java.lang.illegalargumentexception
這個異常的解釋是"方法的參數錯誤",很多j2me的類庫中的方法在一些情況下都會引發這樣的錯誤,比如音量調節方法中的音量參數如果寫成負數就會出現這個異常,再比如g.setcolor(int red,int green,int blue)這個方法中的三個值,如果有超過255的也會出現這個異常,因此一旦發現這個異常,我們要做的,就是趕緊去檢查一下方法調用中的參數傳遞是不是出現了錯誤。

6. java.lang.illegalaccessexception
這個異常的解釋是"沒有訪問許可權",當應用程序要調用一個類,但當前的方法即沒有對該類的訪問許可權便會出現這個異常。對程序中用了package的情況下要注意這個異常。

其他還有很多異常,我就不一一列舉了,我要說明的是,一個合格的程序員,需要對程序中常見的問題有相當的了解和相應的解決辦法,否則僅僅停留在寫程序而不會改程序的話,會極大影響到自己的開發的。關於異常的全部說明,在api里都可以查閱。

算術異常類:ArithmeticExecption

空指針異常類:NullPointerException

類型強制轉換異常:ClassCastException

數組負下標異常:NegativeArrayException

數組下標越界異常:

違背安全原則異常:SecturityException

文件已結束異常:EOFException

文件未找到異常:FileNotFoundException

字元串轉換為數字異常:NumberFormatException

操作資料庫異常:SQLException

輸入輸出異常:IOException

方法未找到異常:NoSuchMethodException

java.lang.AbstractMethodError

抽象方法錯誤。當應用試圖調用抽象方法時拋出。

java.lang.AssertionError

斷言錯。用來指示一個斷言失敗的情況。

java.lang.ClassCircularityError

類循環依賴錯誤。在初始化一個類時,若檢測到類之間循環依賴則拋出該異常。

java.lang.ClassFormatError

類格式錯誤。當Java虛擬機試圖從一個文件中讀取Java類,而檢測到該文件的內容不符合類的有效格式時拋出。

java.lang.Error

錯誤。是所有錯誤的基類,用於標識嚴重的程序運行問題。這些問題通常描述一些不應被應用程序捕獲的反常情況。

java.lang.ExceptionInInitializerError

初始化程序錯誤。當執行一個類的靜態初始化程序的過程中,發生了異常時拋出。靜態初始化程序是指直接包含於類中的static語句段。

java.lang.IllegalAccessError

違法訪問錯誤。當一個應用試圖訪問、修改某個類的域(Field)或者調用其方法,但是又違反域或方法的可見性聲明,則拋出該異常。

java.lang.IncompatibleClassChangeError

不兼容的類變化錯誤。當正在執行的方法所依賴的類定義發生了不兼容的改變時,拋出該異常。一般在修改了應用中的某些類的聲明定義而沒有對整個應用重新編譯而直接運行的情況下,容易引發該錯誤。

java.lang.InstantiationError

實例化錯誤。當一個應用試圖通過Java的new操作符構造一個抽象類或者介面時拋出該異常.

java.lang.InternalError

內部錯誤。用於指示Java虛擬機發生了內部錯誤。

java.lang.LinkageError

鏈接錯誤。該錯誤及其所有子類指示某個類依賴於另外一些類,在該類編譯之後,被依賴的類改變了其類定義而沒有重新編譯所有的類,進而引發錯誤的情況。

java.lang.NoClassDefFoundError

未找到類定義錯誤。當Java虛擬機或者類裝載器試圖實例化某個類,而找不到該類的定義時拋出該錯誤。

java.lang.NoSuchFieldError

域不存在錯誤。當應用試圖訪問或者修改某類的某個域,而該類的定義中沒有該域的定義時拋出該錯誤。

java.lang.NoSuchMethodError

方法不存在錯誤。當應用試圖調用某類的某個方法,而該類的定義中沒有該方法的定義時拋出該錯誤。

java.lang.OutOfMemoryError

內存不足錯誤。當可用內存不足以讓Java虛擬機分配給一個對象時拋出該錯誤。

java.lang.StackOverflowError

堆棧溢出錯誤。當一個應用遞歸調用的層次太深而導致堆棧溢出時拋出該錯誤。

java.lang.ThreadDeath

線程結束。當調用Thread類的stop方法時拋出該錯誤,用於指示線程結束。

java.lang.UnknownError

未知錯誤。用於指示Java虛擬機發生了未知嚴重錯誤的情況。

java.lang.UnsatisfiedLinkError

未滿足的鏈接錯誤。當Java虛擬機未找到某個類的聲明為native方法的本機語言定義時拋出。

java.lang.UnsupportedClassVersionError

不支持的類版本錯誤。當Java虛擬機試圖從讀取某個類文件,但是發現該文件的主、次版本號不被當前Java虛擬機支持的時候,拋出該錯誤。

java.lang.VerifyError

驗證錯誤。當驗證器檢測到某個類文件中存在內部不兼容或者安全問題時拋出該錯誤。

java.lang.VirtualMachineError

虛擬機錯誤。用於指示虛擬機被破壞或者繼續執行操作所需的資源不足的情況。

java.lang.ArithmeticException

算術條件異常。譬如:整數除零等。

java.lang.

數組索引越界異常。當對數組的索引值為負數或大於等於數組大小時拋出。

java.lang.ArrayStoreException

數組存儲異常。當向數組中存放非數組聲明類型對象時拋出。

java.lang.ClassCastException

類造型異常。假設有類A和B(A不是B的父類或子類),O是A的實例,那麼當強制將O構造為類B的實例時拋出該異常。該異常經常被稱為強制類型轉換異常。

java.lang.ClassNotFoundException

找不到類異常。當應用試圖根據字元串形式的類名構造類,而在遍歷CLASSPAH之後找不到對應名稱的class文件時,拋出該異常。

java.lang.CloneNotSupportedException

不支持克隆異常。當沒有實現Cloneable介面或者不支持克隆方法時,調用其clone()方法則拋出該異常。

java.lang.

枚舉常量不存在異常。當應用試圖通過名稱和枚舉類型訪問一個枚舉對象,但該枚舉對象並不包含常量時,拋出該異常。

java.lang.Exception

根異常。用以描述應用程序希望捕獲的情況。

java.lang.IllegalAccessException

違法的訪問異常。當應用試圖通過反射方式創建某個類的實例、訪問該類屬性、調用該類方法,而當時又無法訪問類的、屬性的、方法的或構造方法的定義時拋出該異常。

java.lang.IllegalMonitorStateException

違法的監控狀態異常。當某個線程試圖等待一個自己並不擁有的對象(O)的監控器或者通知其他線程等待該對象(O)的監控器時,拋出該異常。

java.lang.IllegalStateException

違法的狀態異常。當在Java環境和應用尚未處於某個方法的合法調用狀態,而調用了該方法時,拋出該異常。

java.lang.IllegalThreadStateException

違法的線程狀態異常。當縣城尚未處於某個方法的合法調用狀態,而調用了該方法時,拋出異常。

java.lang.IndexOutOfBoundsException

索引越界異常。當訪問某個序列的索引值小於0或大於等於序列大小時,拋出該異常。

java.lang.InstantiationException

實例化異常。當試圖通過newInstance()方法創建某個類的實例,而該類是一個抽象類或介面時,拋出該異常。

java.lang.InterruptedException

被中止異常。當某個線程處於長時間的等待、休眠或其他暫停狀態,而此時其他的線程通過Thread的interrupt方法終止該線程時拋出該異常。

⑼ 簡述Java異常處理機制。簡答題。考試題就是這么問的,

異常機制是指當程序出現錯誤後,程序如何處理。具體來說,異常機制提供了程序退出的安全通道。當出現錯誤後,程序執行的流程發生改變,程序的控制權轉移到異常處理器。

1.2

傳統的處理異常的辦法是,函數返回一個特殊的結果來表示出現異常(通常這個特殊結果是大家約定俗稱的),調用該函數的程序負責檢查並分析函數返回的結果。這樣做有如下的弊端:例如函數返回-1代表出現異常,但是如果函數確實要返回-1這個正確的值時就會出現混淆;可讀性降低,將程序代碼與處理異常的代碼混爹在一起;由調用函數的程序來分析錯誤,這就要求客戶程序員對庫函數有很深的了解。

1.3 異常處理的流程

1.3.1 遇到錯誤,方法立即結束,並不返回一個值;同時,拋出一個異常對象

1.3.2 調用該方法的程序也不會繼續執行下去,而是搜索一個可以處理該異常的掘衡異常處理器,並執行其中的代碼

2 異常的分類

2.1 異常的分類

2.1.1

異常的繼承結構慎漏:基類為Throwable,Error和Exception繼承Throwable,RuntimeException和IOException等繼承Exception,具體的RuntimeException繼承RuntimeException。

2.1.2

Error和寬散爛RuntimeException及其子類成為未檢查異常(unchecked),其它異常成為已檢查異常(checked)。

欲查看詳細內容請瀏覽: http://www.cnblogs.com/wjun530/archive/2007/09/20/900169.html
希望能幫到你

閱讀全文

與程序員異常簡介相關的資料

熱點內容
遵義聯通伺服器地址是什麼 瀏覽:29
ansys約束命令流 瀏覽:814
解壓軟體電腦版如何下載 瀏覽:791
閃電匕首演算法球 瀏覽:692
linuxredis停止命令 瀏覽:670
大麥賬號怎麼加密 瀏覽:113
穿越火線怎麼找伺服器 瀏覽:526
秘密加密社交軟體app 瀏覽:256
c語言編譯器怎麼找文件 瀏覽:835
數學不好能編程嗎 瀏覽:254
微雲里的視頻加密 瀏覽:41
3大加密貨幣交易平台 瀏覽:647
鈑金激光切割機編程 瀏覽:496
vivo手機手電筒app在哪裡 瀏覽:787
單片機晶振電路電容 瀏覽:887
穿越火線河南一區伺服器雲主機 瀏覽:41
文件夾與快捷方式顯示一致 瀏覽:879
幻影伺服器怎麼看金錢 瀏覽:349
小米手機怎麼用app減肥 瀏覽:893
本機如何與雲伺服器互通 瀏覽:652