相信作為程序員的我們在對程序進行編譯過程中經常會遇到錯誤,或者在運行過程中出現錯誤,在這里主要跟大家談談經常遇到的一些異常與錯誤,以及解決辦法。
老河口ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
異常是指程序在編譯或運行過程出現的錯誤。
在java.lang包中Throwable包含了所有的異常。
Error (錯誤) 和Exception(異常)
(1)Error(錯誤)
一旦發生無法修復,但可以避免發生。
常見錯誤類:
IOError:I/O錯誤,當發生嚴重的I/O錯誤時,拋出此錯誤。
VirtualMachineError?:虛擬機錯誤,當 Java 虛擬機崩潰或用盡了它繼續操作所需的資源時,拋出該錯誤。
StackOverflowError:棧內存滿了,當應用程序遞歸太深而發生堆棧溢出時,拋出該錯誤。
OutofMemoryError:堆內存滿了,因為內存溢出或沒有可用的內存提供給垃圾回收器時,Java 虛擬機無法分配一個對象,這時拋出該異常。
以上是一些常見的錯誤,在Error類中還有一些別的錯誤(參照文件Java.lang.Throwable.Error).
(2)Exception(異常)
一旦發生,可以捕獲并處理,不會導致程序終止,有時可以避免有時無法避免。
異常的分類:
1.編譯時異常(需要強制處理)?????? 2.運行時異常(不需要強制處理)
常見的異常有:
IOException:輸入輸出流異常
FileNotFoundException:文件找不到的異常
ClassNotFoundException:類找不到的異常
DataFormatException:數據格式化異常
NoSuchFieldException:沒有匹配的屬性異常
NoSuchMethodException:沒有匹配的方法異常
SQLException:數據庫操作異常
TimeoutException:執行超時異常
常見的運行時異常:
RuntimeException:運行時異常
NullPointerException:空指針異常
ArrayIndexOutofBoundsException:數組越界異
ClassCastException:類型轉換異常
IllegalArgumentException:非法的參數異常
InputMismatchException:輸入不匹配
以上是常見的一些異常,另外還有別的異常,參見文件:Java.lang.Throwable.Exception
既然我們常常會遇到一些異常,那我們如何來處理這些異常就是一個急需解決的事情。
(1) 如何處理編譯時異常?
方法一:將需要處理的代碼塊放在一個try...catch...中
try{
//需要處理異常的代碼
}catch(XXXException ef){
ef.printStackTrace();
}
我們方法一就是要將我們不確定的代碼放入try......catch中,先進行try一下,如果沒有異常,則不會觸發catch,沒有輸出,一旦出現異常,那么catch就會工作,在catch中捕獲異常信息,根據異常信息進行補救措施。
如以下代碼:
方法二:在出現異常的方法上直接向上拋出異常,throws
void ff() throws XXXException{
}
將出現的異常的代碼中,放入如上的方法中,就會將異常拋給該方法的上一級,在主函數上繼續向上拋,最終拋給JVM java虛擬機,讓JVM來解決該問題。
如代碼:
注意:在catch和throws的時候如果不確定是什么異常,就直接寫一個Exception.
(2) 如何處理運行時異常?
1.一般情況下,運行時異常是不用處理的?
2.在某些情況下,如果對發生異常的結果進行處理,也可以對運行時異常進行try...catch...
以上就是一些我們處理編譯時異常和運行時異常的方法。
在程序出現異常時,有時候我們可以自定義異常,以便我們能夠發現是什么異常。
那么如何自定義異常??
1.當運行時,程序出現意外,可以拋出異常對象來結束程序
如:
//拋出運行時異常對象
RuntimeException ef = new RuntimeException("下標越界!index:"+index+" ,size:"+size());
throw ef;
2.對于編譯時異常,同樣可以拋出異常對象
但在方法定義時候必須加上throws
如:
public void test(int t) throws Exception{
if (t 0 || t 100) {
Exception ef = new Exception("數據錯誤");
throw ef;
}
}
例如:
運行結果:
從結果可以看出,我們在輸入數據的時候出現錯誤,這樣通過自定義異常能夠讓我們更直接快速的找到運行或編譯時的異常。
在上述中我們分別提到了三種throw,分別是Throwable,Throws以及throw,那么到底三者有什么區別?
Throwable:是指在在Java.lang包中的一個類,其包含了所有的異常和錯誤,其中類Error和Exception 是它
的子類。
Thows:是指在解決編譯時異常,將方法中異常拋給上一級,在方法后面要加Throw Exception來進行拋。
throw:是指在自定義異常時,如果方法出現異常,那么將作為引用方法的對象拋出。即拋出異常。
1,java.lang.NullPointerException?
這個異常的解釋是"程序遇上了空指針",簡單地說就是調用了未經初始化的對象或者是不存在的對象,這個錯誤經常出現在創建圖片,調用數組這些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。
2,java.lang.ClassNotFoundException?
異常的解釋是"指定的類不存在",這里主要考慮一下類的名稱和路徑是否正確即可
3,java.lang.ArrayIndexOutOfBoundsException?
這個異常的解釋是"數組下標越界",現在程序中大多都有對數組的操作,因此在調用數組的時候一定要認真檢查,看自己調用的下標是不是超出了數組的范圍,一般來說,顯示(即直接用常數當下標)調用不太容易出這樣的錯,但隱式(即用變量表示下標)調用就經常出錯了.
4,java.lang.NoSuchMethodError??
方法不存在錯誤。當應用試圖調用某類的某個方法,而該類的定義中沒有該方法的定義時拋出該錯誤。
5,java.lang.IndexOutOfBoundsException???
索引越界異常。當訪問某個序列的索引值小于0或大于等于序列大小時,拋出該異常。
6,java.lang.NumberFormatException???
數字格式異常。當試圖將一個String轉換為指定的數字類型,而該字符串確不滿足數字類型要求的格式時,拋出該異常。
7,java.sql.SQLException?
Sql語句執行異常
8,java.io.IOException?
輸入輸出異常?
9,java.lang.IllegalArgumentException?
方法參數錯誤
10java.lang.IllegalAccessException?
無訪問權限異常
擴展資料:
Java技術應用領域:
1、Android應用
許多的Android應用都是Java程序員開發者開發。雖然Android運用了不同的JVM以及不同的封裝方式,但是代碼還是用Java語言所編寫。相當一部分的手機中都支持JAVA游戲,這就使很多非編程人員都認識了JAVA。
2、在金融業應用的服務器程序
Java在金融服務業的應用非常廣泛,很多第三方交易系統、銀行、金融機構都選擇用Java開發,因為相對而言,Java較安全。大型跨國投資銀行用Java來編寫前臺和后臺的電子交易系統,結算和確認系統,數據處理項目以及其他項目。
3、網站
Java在電子商務領域以及網站開發領域占據了一定的席位。開發人員可以運用許多不同的框架來創建web項目,SpringMVC,Struts2.0以及frameworks。即使是簡單的servlet,jsp和以struts為基礎的網站在政府項目中也經常被用到。例如醫療救護、保險、教育、國防以及其他的不同部門網站都是以Java為基礎來開發的。
4、嵌入式領域
Java在嵌入式領域發展空間很大。在這個平臺上,只需130KB就能夠使用Java技術(在智能卡或者傳感器上)。
5、大數據技術
Hadoop以及其他大數據處理技術很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及ElasticSearchas。
6、高頻交易的空間
Java平臺提高了這個平臺的特性和即使編譯,他同時也能夠像C++一樣傳遞數據。正是由于這個原因,Java成為的程序員編寫交易平臺的語言,因為雖然性能不比C++,但開發人員可以避開安全性,可移植性和可維護性等問題。
7、科學應用
Java在科學應用中是很好選擇,包括自然語言處理。最主要的原因是因為Java比C++或者其他語言相對其安全性、便攜性、可維護性以及其他高級語言的并發性更好。
程序中可能有三種錯誤:語法錯誤;運行時錯誤;語義錯誤。
一、語句的語法必須是正確的,才能被計算機控制。否則,將中斷執行進程,并返回錯誤消息。語法是指程序語句的組成。遵守語言規則。例如,下列語句在語法上是正確的: ,a = b - c。
二、它的意思是把b-c賦給變量a,如果你把這個表達式寫成“b-c =。”A“在這種形式中,它是錯誤的,因為它不符合語法,而表達“b-c”是行不通的。
三、這需要百分之百的準確性。這是一個錯誤,并且不可能執行您的程序。語法錯誤更容易找到。
和消除。當你開始學習編程時,你需要熟悉語法和語法錯誤。可能會有很多錯誤,隨著經驗的增長,它會減少一點,即使它會減少,你也可以。找到并改正它們。
四、底部是由人類為我們使用的工具設計的。這是電視和汽車的本質。它是一樣的。限于目前計算機硬件和軟件的理論水平,工業生產用水。甚至是用戶的水平等等一些內部的外部因素,你認為,它不能。不對嗎?程序越復雜,出現異常的可能性就越大。有許多類型的異常,例如內存。
五、任何零的除法都有可能引起異常。特殊的異常是用Python設計的。減少錯誤的影響。即使存在語義錯誤,程序也可以正常運行,并且不會出現錯誤。信息,但結果與我們預期的大不相同。然后程序做了別的事情。
分享文章:java代碼中常見的錯誤 java常見錯誤以及可能原因集錦
文章轉載:http://www.yijiale78.com/article14/dodegde.html
成都網站建設公司_創新互聯,為您提供服務器托管、面包屑導航、動態網站、用戶體驗、網站改版、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯