本文目錄一覽:
常見JAVA運行時異常有哪些?
1、五種常見的異常:ClassCastException(類轉換異常)、IndexOutOfBoundsException(數組越界異常)、NullPointerException(空指針異常)、ArrayStoreException(數據存儲異常,操作數組時類型不一致)、BufferOverflowException(還有IO操作的,緩衝溢出異常)。
2、java運行時異常是可能在java虛擬機正常工作時拋出的異常。java提供了兩種異常機制。一種是運行時異常(RuntimeExepction),一種是檢查式異常(checked execption)。
檢查式異常:我們經常遇到的IO異常及sql異常就屬於檢查式異常。對於這種異常,java編譯器要求我們必須對出現的這些異常進行catch 所以 面對這種異常不管我們是否願意,只能自己去寫一堆catch來捕捉這些異常。
運行時異常:我們可以不處理。當出現這樣的異常時,總是由虛擬機接管。比如:我們從來沒有人去處理過NullPointerException異常,它就是運行時異常,並且這種異常還是最常見的異常之一。
擴展資料:
Java特點
Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程序員很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。Java還剔除了C++的操作符過載和多繼承特徵,並且不使用主文件,免去了預處理程序。
因為Java沒有結構,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發上。
參考資料:百度百科-Java
什麼是Java的異常
異常通常指,你的代碼可能在編譯時沒有錯誤,可是運行時會出現異常。比如常見的空指針異常。也可能是程序可能出現無法預料的異常,比如你要從一個文件讀信息,可這個文件不存在,程序無法運行下去了,故程序要抓這些異常,通過異常處理機制來拋出這些異常,程序員就可以通過拋出的異常來修改代碼。try{}catch{}finally{}try塊中放入可能會出現異常的代碼,catch塊負責捕獲異常,finally塊負責處理一些必須執行的代碼,比較關閉流等。
常見的java異常有:
空指針異常類:NullPointerException
當應用試圖在要求使用對象的地方使用了null時,拋出該異常。譬如:調用null對象的實例方法、訪問null對象的屬性、計算null對象的長度、使用throw語句拋出 null等等。
類型強制轉換異常:ClassCastException
假設有類A和B(A不是B的父類或子類),O是A的實例,那麼當強制將O構造為類B的實例時拋出 該異常。該異常經常被稱為強制類型轉換異常。
數組下標越界異常:ArrayIndexOutOfBoundsException
當訪問某個序列的索引值小於0或大於等於序列大小時,拋出該異常。
文件未找到異常:FileNotFoundException
當試圖去引用一個路徑下的某個文件而該路徑下沒有文件時,拋出該異常。
數字格式異常:NumberFormatException
當試圖將一個String轉換為指定的數字類型,而該字符串卻不滿足數字類型要求的格式時,拋出該異常。
數據庫操作異常:SQLException
當執行一段SQL語句或該SQL不符合規則時拋出該異常。
輸入輸出流異常:IOException
常見的java異常有哪些?都是什麼意思?
1、ArithmeticException – 算術運算中,被0除或模除。
2、ArrayIndexOutOfBoundsException – 數組越界訪問。
3、ArrayStoreException – 數據存儲異常,寫數組操作時,對象或數據類型不兼容。
4、ClassCastException – 類型轉換異常。
5、IllegalArgumentException – 方法的參數無效。
6、IllegalThreadStateException – 試圖非法改變線程狀態,比方說試圖啟動一已經運行的線程。
7、NullPointerException – 試圖訪問一空對象的變量、方法或空數組的元素
8、NumberFormatException – 數據格式異常,試圖把一字符串非法轉換成數值(或相反)。
9、SecurityException – 如果Applet試圖執行一被WWW瀏覽器安全設置所禁止的操作。
10、IncompatibleClassChangeException – 如改變了某一類定義,卻沒有重新編譯其他引用了這個類的對象。如某一成員變量的聲明被從靜態改變為非靜態,但其他引用了這個變量的類卻沒有重新編譯,或者相反。
11、OutOfMemoryException – 內存不足,通常發生於創建對象之時。
12、NoClassDefFoundException – JAVA運行時系統找不到所引用的類。
13、IncompatibleTypeException – 試圖實例化一個接口,Java運行時系統將拋出這個異常。
14、UnsatisfiedLinkException – 如果所需調用的方法是C函數,但Java運行時系統卻無法連接這個函數。
15、InternalException – 系統內部故障所導致的異常情況,可能是因為Java運行時系統本身的原因。如果發現一可重現的InternalException,可以直接給Sun公司發電郵java@java.Sun.com。
Java學習中常見的異常是什麼?
java程序中幾種常見的異常以及出現此異常的原因
1、java.lang.NullpointerException(空指針異常)
原因:這個異常經常遇到,異常的原因是程序中有空指針,即程序中調用了未經初始化的對象或者是不存在的對象。
經常出現在創建對象,調用數組這些代碼中,比如對象未經初始化,或者圖片創建時的路徑錯誤等等。對數組代碼
中出現空指針,是把數組的初始化和數組元素的初始化搞混淆了。數組的初始化是對數組分配空間,而數組元素的
初始化,是給數組中的元素賦初始值
2、 java.lang.ClassNotFoundException(指定的類不存在)
原因:當試圖將一個String類型數據轉換為指定的數字類型,但該字符串不滿足數值型數據的要求時,就拋出這個異
常。例如將String類型的數據”123456″轉換為數值型數據時,是可以轉換的的。但是如果String類型的數據中包含了
非數字型的字符,如123*56,此時轉換為數值型時就會出現異常。系統就會捕捉到這個異常,並進行處理
3、java.lang.ClassNotFoundExceptio(指定的類不存在)
原因:是因為類的名稱和路徑不正確,通常都是程序試圖通過字符串來加載某個類的時候可能會引發異常。例如:
調用Class.forName()、或者調用ClassLoad的finaSystemClass()、或者是LoadClass()時出現異常
4、java.lang.IndexOutOfBoundsException(數組下標越界異常)
原因:查看程序中調用的數組或者字符串的下標值是不是超出了數組的範圍,一般來說,顯示調用數組不太容易出這
樣的錯,但隱式調用就有可能出錯了,還有一種情況,是程序中定義的數組的長度是通過某些特定方法決定的,不是
事先聲明的,這個時候可以先查看一下數組的length,以免出現這個異常
5、java.lang.IllegalArgumentException(方法的參數錯誤)
例如g.setColor(int red,int green,int blue)這個方法中的三個值,如果有超過255的會出現這個異常,如果程
序中存在這個異常,就要去檢查一下方法調用中的參數傳遞或參數值是不是有錯
6、java.lang.IllegalAccessException(沒有訪問權限)
當程序要調用一個類,但當前的方法即沒有對該類的訪問權限便會出現這個異常。如果程序中用了Package的情況下
有可能出現這個異常
7、java.lang.ArithmeticException(數學運算異常)
當數學運算中出現了除以零這樣的運算就會出這樣的異常。
8、java.lang.ClassCastException(數據類型轉換異常)
當試圖將對某個對象強制執行向下轉換,但該對象又不可轉換或又不可轉換為其子類的實例時將出現該異常
9、 java.lang.FileNotFoundException(文件未找到異常)
當程序打開一個不存在的文件來進行讀寫時將會引發該異常。該異常由FileInputStream,FileOutputStream,
RandomAccessFile的構造器聲明拋出,即使被操作的文件存在,但是由於某些原因不可訪問,比如打開一個
只有隻讀權限的文件並向其中寫入數據,以上構造方法依然會引發異常
10、java.lang.ArrayStoreException(數組存儲異常)
當試圖將類型為不兼容類型的對象存入一個Object[]數組時將引發異常
11、java.lang.NoSuchMethodException(方法不存在異常)
當程序試圖通過反射來創建對象,訪問(修改或讀取)某個方法,但是該方法不存在就會引發異常。
12、 java.lang.EOFException(文件已結束異常)
當程序在輸入的過程中遇到文件或流的結尾時,引發異常。因此該異常用於檢查是否達到文件或流的結尾
13、java.lang.InstantiationException(實例化異常)
當試圖通過Class的newInstance()方法創建某個類的實例,但程序無法通過該構造器來創建該對象時引發。
Class對象表示一個抽象類,接口,數組類,基本類型 。該Class表示的類沒有對應的構造器。
14、java.lang.InterruptedException(被中止異常)
當某個線程處於長時間的等待、休眠或其他暫停狀態,而此時其他的線程通過Thread的interrupt方法終止該線程時拋出該異常。
15、java.lang.CloneNotSupportedException (不支持克隆異常)
當沒有實現Cloneable接口或者不支持克隆方法時,調用其clone()方法則拋出該異常
16、java.lang.OutOfMemoryException (內存不足錯誤)
當可用內存不足以讓Java虛擬機分配給一個對象時拋出該錯誤
17、java.lang.NoClassDefFoundException (未找到類定義錯誤)
當Java虛擬機或者類裝載器試圖實例化某個類,而找不到該類的定義時拋出該錯誤
java常見的異常有哪些
作為一隻敬業的程序員,就是不能接受我的編程出現bug!可見我們對bug是如此的深惡痛覺!它已成為我們職業生涯中的攔路虎,所以今天精心為大家總結一下Java中常見的幾種異常,望大家多多注意。
1、java.lang.NullPointerException(空指針異常)
調用了未經初始化的對象或者是不存在的對象。經常出現在創建圖片,調用數組這些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。對數組操作中出現空指針, 即把數組的初始化和數組元素的初始化混淆起來了。數組的初始化是對數組分配需要的空間,而初始化後的數組,其中的元素並沒有實例化, 依然是空的,所以還需要對每個元素都進行初始化(如果要調用的話)。
2、 java.lang.ClassNotFoundException指定的類不存在
這裡主要考慮一下類的名稱和路徑是否正確即可,通常都是程序試圖通過字符串來加載某個類時可能引發異常。比如:調用Class.forName();或者調用ClassLoad的finaSystemClass();或者LoadClass();
3、 java.lang.NumberFormatException字符串轉換為數字異常
當試圖將一個String轉換為指定的數字類型,而該字符串確不滿足數字類型要求的格式時,拋出該異常.如現在講字符型的數據「123456」轉換為數值型數據時,是允許的。但是如果字符型數據中包含了非數字型的字符,如123#56,此時轉換為數值型時就會出現異常。系統就會捕捉到這個異常,並進行處理。
4、java.lang.IndexOutOfBoundsException數組下標越界異常
查看調用的數組或者字符串的下標值是不是超出了數組的範圍,一般來說,顯示(即直接用常數當下標)調用不太容易出這樣的錯,但隱式(即用變量表示下標)調用就經常出錯了,還有一種情況,是程序中定義的數組的長度是通過某些特定方法決定的,不是事先聲明的,這個時候先查看一下數組的length,以免出現這個異常。
5、java.lang.IllegalArgumentException方法的參數錯誤
比如g.setColor(int red,int green,int blue)這個方法中的三個值,如果有超過255的也會出現這個異常,因此一旦發現這個異常,我們要做的,就是趕緊去檢查一下方法調用中的參數傳遞是不是出現了錯誤。
6、java.lang.IllegalAccessException沒有訪問權限
當應用程序要調用一個類,但當前的方法即沒有對該類的訪問權限便會出現這個異常。對程序中用了Package的情況下要注意這個異常。
7、java.lang.ArithmeticException數學運算異常
當算術運算中出現了除以零這樣的運算就會出這樣的異常。
8、java.lang.ClassCastException數據類型轉換異常
當試圖將對某個對象強制執行向下轉型,但該對象又不可轉換又不可轉換為其子類的實例時將引發該異常,如下列代碼。
Object obj = new Integer(0);
String str = obj;
9、 java.lang.FileNotFoundException文件未找到異常
當程序試圖打開一個不存在的文件進行讀寫時將會引發該異常。該異常由FileInputStream,FileOutputStream,RandomAccessFile的構造器聲明拋出,即使被操作的文件存在,但是由於某些原因不可訪問,比如打開一個只讀文件進行寫入,這些構造方法仍然會引發異常。
10、java.lang.ArrayStoreException數組存儲異常
當試圖將類型不兼容類型的對象存入一個Object[]數組時將引發異常,如
Object[] obj = new String[3]
obj[0] = new Integer(0);
11、java.lang.NoSuchMethodException方法不存在異常
當程序試圖通過反射來創建對象,訪問(修改或讀取)某個方法,但是該方法不存在就會引發異常。
12、 java.lang.NoSuchFiledException方法不存在異常
當程序試圖通過反射來創建對象,訪問(修改或讀取)某個filed,但是該filed不存在就會引發異常。
13、 java.lang.EOFException文件已結束異常
當程序在輸入的過程中遇到文件或流的結尾時,引發異常。因此該異常用於檢查是否達到文件或流的結尾
14、java.lang.InstantiationException實例化異常
當試圖通過Class的newInstance()方法創建某個類的實例,但程序無法通過該構造器來創建該對象時引發。Class對象表示一個抽象類,接口,數組類,基本類型 。該Class表示的類沒有對應的構造器。
15、java.lang.InterruptedException被中止異常
當某個線程處於長時間的等待、休眠或其他暫停狀態,而此時其他的線程通過Thread的interrupt方法終止該線程時拋出該異常。
16、java.lang.CloneNotSupportedException 不支持克隆異常
當沒有實現Cloneable接口或者不支持克隆方法時,調用其clone()方法則拋出該異常。
17、java.lang.OutOfMemoryException 內存不足錯誤
當可用內存不足以讓Java虛擬機分配給一個對象時拋出該錯誤。
18、java.lang.NoClassDefFoundException 未找到類定義錯誤
當Java虛擬機或者類裝載器試圖實例化某個類,而找不到該類的定義時拋出該錯誤。
違背安全原則異常:SecturityException
操作數據庫異常:SQLException
輸入輸出異常:IOException
通信異常:SocketException
以上便是Java常見的幾種異常,希望各位同學都能編譯出完美的代碼,笑隱竹林中!編碼bug,江湖永無相見!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/194617.html