1. 程式人生 > >java中10大常見異常

java中10大常見異常

NO.1 java.lang.NullPointerException

  這個異常大家肯定都經常遇到,異常的解釋是 “程式遇上了空指標 “,簡單地說就是呼叫了未經初始化的物件或者是不存在的物件,這個錯誤經常出現在

建立圖片,呼叫陣列這些操作中,比如圖片未經初始化,或者圖片建立時的路徑錯誤等等。對陣列操作中出現空指標,很多情況下是一些剛開始學習程式設計的朋

友常犯的錯誤,即把陣列的初始化和陣列元素的初始化混淆起來了。陣列的初始化是對陣列分配需要的空間,而初始化後的陣列,其中的元素並沒有例項化,

依然是空的,所以還需要對每個元素都進行初始化(如果要呼叫的話)。
  在jsp程式設計中經常出現:if (request.getParameter(“username”).equals(“xxx”))、out.println(session.getAttribute(“record”))等。解決這

個問題的方法是在使用前進行判空比較:

   if (request.getParameter(“username”)!=null)
  {if if (request.getParameter(“username”).

  equals(“xxx”))…}

NO.2 java.lang.ClassNotFoundException

  這個異常是很多原本在JB等開發環境中開發的程式設計師,把JB下的程式包放在WTk下編譯經常出現的問題,異常的解釋是 “指定的類不存在 “,這裡主要考

慮一下類的名稱和路徑是否正確即可,如果是在JB下做的程式包,一般都是預設加上Package的,所以轉到WTK下後要注意把Package的路徑加上。

NO.3 java.lang.ArithmeticException

  這個異常的解釋是 “數學運算異常 “,比如程式中出現了除以零這樣的運算就會出這樣的異常,對這種異常,大家就要好好檢查一下自己程式中涉及到數

學運算的地方,公式是不是有不妥了。

NO.4 java.lang.ArrayIndexOutOfBoundsException

  這個異常相信很多朋友也經常遇到過,異常的解釋是 “陣列下標越界 “,現在程式中大多都有對陣列的操作,因此在呼叫陣列的時候一定要認真檢查,看

自己呼叫的下標是不是超出了陣列的範圍,一般來說,顯示(即直接用常數當下標)呼叫不太容易出這樣的錯,但隱式(即用變量表示下標)呼叫就經常出錯

了,還有一種情況,是程式中定義的陣列的長度是通過某些特定方法決定的,不是事先宣告的,這個時候,最好先檢視一下陣列的length,以免出現這個異常

NO.5 java.lang.IllegalArgumentException
  這個異常的解釋是 “方法的引數錯誤 “,很多J2ME的類庫中的方法在一些情況下都會引發這樣的錯誤,比如音量調節方法中的音量引數如果寫成負數就會

出現這個異常,再比如g.setColor(int red,int green,int blue)這個方法中的三個值,如果有超過255的也會出現這個異常,因此一旦發現這個異

常,我們要做的,就是趕緊去檢查一下方法呼叫中的引數傳遞是不是出現了錯誤。 NO.6 java.lang.IllegalAccessException

  這個異常的解釋是 “沒有訪問許可權 “,當應用程式要呼叫一個類,但當前的方法即沒有對該類的訪問許可權便會出現這個異常。對程式中用了Package的情

況下要注意這個異常。

NO.7 java.lang.IncompatibleClassChangeError
不相容的類變化錯誤。當正在執行的方法所依賴的類定義發生了不相容的改變時,丟擲該異常。一般在修改了應用中的某些類的宣告定義而沒有對整個應用重

新編譯而直接執行的情況下,容易引發該錯誤。
NO.8 java.lang.InstantiationError

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

NO.9 java.lang.LinkageError

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


NO.10 java.lang.StackOverflowError
堆疊溢位錯誤。當一個應用遞迴呼叫的層次太深而導致堆疊溢位時丟擲該錯誤。

  其他還有很多異常,在此我就不一一列舉了,但要說明的是,一個合格的程式設計師,需要對程式中常見的問題有相當的瞭解和相應的解決辦法,否則僅僅停留在寫程式而不會改程式的話,會極大影響到自己的開發的。真正能說明你Coding水平的標準中,對異常的認識就是其中非常重要的一條。關於異常的全部說明,在api裡都可以查閱。大家也不用把其中的所有內容都背在腦中,只要做到對常見異常有一些印像,在真正遇到時知道去哪找就差不多了,畢竟Java程式設計師最最痛苦就是它的知識容量太大,而我們每天都會遇到新的錯誤與新的問題及新的知識,所以把握一條屬於自己的排隊異常的本領才是最重要的。

相關推薦

java10常見異常

NO.1 java.lang.NullPointerException   這個異常大家肯定都經常遇到,異常的解釋是 “程式遇上了空指標 “,簡單地說就是呼叫了未經初始化的物件或者是不存在的物件,這個錯誤經常出現在 建立圖片,呼叫陣列這些操作中,比如圖片未經初始化,或者圖片建立時的路徑錯誤等等。對陣列

java5種常見異常(Exception)

 1. Java.lang.NullPointerException   這個異常大家肯定都經常碰到,異常的解釋是"程式遇上了空指標",簡單地說就是呼叫了未經初始化的物件或者是不存在的物件,這個錯誤經常出現在建立圖片,呼叫陣列這些操作中,比如圖片未經初始化,或者圖片建立時

javaRedis5基本類型的用法

collect spa nts trim ioe 差集 close 客戶 出棧 存儲格式 基本用法 通過Jedis(封裝了redis的Java客戶端)對redis進行操作。 Jedis工具類 public class JedisPoolUtil { pr

愛上 Java10 理由,Python 弱爆了!

技術 process 智能化 RoCE 無需 但是 images F12 intel Java和JVM已經存在了很長一段時間了,基於這個事實,一些程序員開始將很多事情視為理所當然。今天我們就來說一說“Java之所以能夠成為並將繼續是軟件項目領先平臺”的十大理由。 1.高性

Java幾種常見的NPE問題

avi oar 返回 對象 [] 報錯 不能 alt public 1、Map下的NPE 直接上代碼: public class User { private Integer id; private String name;

Java十個常見的違規編碼

pan 兩個 cat clas 減少 輕松 十個 發現 手動 摘要:作者Veera Sundar在清理代碼工作時發現一些常見的違規編碼,因此,Veera Sundar把針對常見的一些違規編碼總結成一份列表,以便幫助Java愛好者提高代碼的質量和可維護性。 最近,我給Jav

Java的陣列常見錯誤

ArrayIndexOutOfBoundsException:陣列索引越界異常 原因:你訪問了不存在的索引,陣列預設下標從0開始,最大的下標值為陣列長度-1 public void test1(){ int[] arr = {1,2,3}; //jav

Java4基本加密演算法解析 Java4基本加密演算法解析

Java中4大基本加密演算法解析   Base64是網路上最常見的用於傳輸8Bit位元組程式碼的編碼方式之一,大家可以檢視RFC2045~RFC2049,上面有MIME的詳細規範。 簡單的java加密演算法有: BASE64

javaIOException是什麼異常

IOException:是Exception的子類。 I/O:inputstream/outputstream 常常出現的場景:一般在讀寫資料的時候會出現這種問題。 java內部讀寫資料實現邏輯: java內部資料的傳輸都是通過流,或者byte來進行傳遞的。 就行一個文字檔案。你可以通過

【智宇物聯】:物聯網絡卡10常見問題

  如今,我們的生活已經離不開物聯網絡卡的存在了,物聯網絡卡在我們生活中的應用十分廣泛,但是有些使用者對於物聯網絡卡這一方面還是有很多的問題,下面智宇物聯歸納了使用者關於物聯網絡卡的一些常見問題,並且做了詳細的解答。   1、什麼是物聯網絡卡?   物聯網絡卡是有運營商(

java幾種常見的排序演算法實現

在Java中得資料結構比較 | 資料機構 | 優點| 缺點 | |陣列 | 插入快,在直到下標得情況下可快速地存取| 查詢慢,刪除慢,大小固定 | |有序陣列 | 比無序得陣列查詢快|刪除和插入慢,大小固定 | |棧 | 提供後進先出方式的存取| 存取其他項很

java的日期常見操作

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calendar.getInstance();1.過去七天 c.setTime(new Date()); c.add(Calenda

Java內部類和異常處理

1、 內部類 內部類的訪問規則: 1) 內部類可以訪問外部類的成員包括私有。 之所以可以直接訪問外部類的成員,是因為內部類持有一個外部類的引用 , 格式: 外部類名.this 2) 外部類要訪問內部類,必須建立內部類物件。 當內部類處於外

網站10常見安全漏洞及解決方案

一般來說牛逼點的地方都會通過安全裝置來確保網路環境的安全,所以之前我們也都認為程式設計師不需要過多的考慮網站安全問題。實際上隨著做了幾個事業單位的網站之後,也逐漸發現有些方面還是需要程式設計師注意的。1. SQL注入 安全等級★★★★★幾乎每一個網站後臺開發人員都聽到的一個詞

資料庫10常見安全問題及Top 10 資料庫安全工具盤點

資料庫已經成為黑客的主要攻擊目標,因為它們儲存著大量有價值和敏感的資訊。 這些資訊包括金融、智慧財產權以及企業資料等各方面的內容。網路罪犯開始從入侵線上業務伺服器和破壞資料庫中大量獲利,因此,確保資料庫的安全成為越來越重要的命題。 網路的高速發展為企業和個人都帶來了無限機遇,隨著線上業務變得越來越流行,接觸

Java對日期常見的操作實現

/* * 現在日期和查詢日期先後比較 * month 輸入以現在為基準,往前推的n個月 * */ public static boolean DateCompa(Integer month, Date orgQueryDate)

Java四種常見的單例模式以及各自優缺點總結

餓漢式實現:餓漢式單例模式程式碼中,static變數會在類裝載時初始化,此時也不會涉及多個執行緒物件訪問該物件的問題。虛擬機器保證只會裝載一次該類,肯定不會發生併發訪問的問題。因此,可以省略synchronized關鍵字。問題:如果只是載入本類,而不是呼叫getInstan

java 三種常見記憶體溢位錯誤的處理方法

相信有一定Java開發經驗的人或多或少都會遇到OutOfMemoryError的問題,這個問題曾困擾了我很長時間,隨著解決各類問題經驗的積累以及對問題根源的探索,終於有了一個比較深入的認識。 在解決java記憶體溢位問題之前,需要對jvm(java虛擬機器)的

卷積神經網路10拍案叫絕的操作

CNN從2012年的AlexNet發展至今,科學家們發明出各種各樣的CNN模型,一個比一個深,一個比一個準確,一個比一個輕量。我下面會對近幾年一些具有變革性的工作進行簡單盤點,從這些充滿革新性的工作中探討日後的CNN變革方向。注:水平所限,下面的見解或許有偏差,望大牛指正。另外只介紹其中具有代表性的模型,一些

Java幾種常見的編碼方式

幾種常見的編碼格式  為什麼要編碼  不知道大家有沒有想過一個問題,那就是為什麼要編碼?我們能不能不編碼?要回答這個問題必須要回到計算機是如何表示我們人類能夠理解的符號的,這些符號也就是我們人類使用的語言。由於人類的語言有太多,因而表示這些語言的符號太多,無法用計算機中一個基本的