日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
10 個讓人深惡痛絕的 Java 異常

 異常是 Java 程序中經(jīng)常遇到的問題,我想每一個 Java 程序員都討厭異常,一 個異常就是一個 BUG,就要花很多時間來定位異常問題。

為企業(yè)提供網(wǎng)站建設、網(wǎng)站設計、網(wǎng)站優(yōu)化、全網(wǎng)營銷推廣、競價托管、品牌運營等營銷獲客服務。創(chuàng)新互聯(lián)公司擁有網(wǎng)絡營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術(shù)實力解決了企業(yè)“網(wǎng)站建設、網(wǎng)絡品牌塑造、網(wǎng)絡營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認可!

什么是異常及異常的分類請看這篇文章:一張圖搞清楚 Java 異常機制。

今天,棧長來列一下 Java 中經(jīng)常遇到的前 10 個異常,排名不分先后。

1、NullPointerException

空指針異常,操作一個 null 對象的方法或?qū)傩詴r會拋出這個異常。

2、OutOfMemoryError

內(nèi)存異常異常,這不是程序能控制的,是指要分配的對象的內(nèi)存超出了當前***的堆內(nèi)存,需要調(diào)整堆內(nèi)存大小(-Xmx)以及優(yōu)化程序。

3、IOException

IO,即:input, output,我們在讀寫磁盤文件、網(wǎng)絡內(nèi)容的時候經(jīng)常會生的一種異常,這種異常是受檢查異常,需要進行手工捕獲。

如文件讀寫會拋出 IOException:

 
 
 
 
  1. public int read() throws IOException 
  2. public void write(int b) throws IOException 

4、FileNotFoundException

文件找不到異常,如果文件不存在就會拋出這種異常。

如定義輸入輸出文件流,文件不存在會報錯:

 
 
 
 
  1. public FileInputStream(File file) throws FileNotFoundException 
  2. public FileOutputStream(File file) throws FileNotFoundException 

FileNotFoundException 其實是 IOException 的子類,同樣是受檢查異常,需要進行手工捕獲。

5、ClassNotFoundException

類找不到異常,Java開發(fā)中經(jīng)常遇到,是不是很絕望?這是在加載類的時候拋出來的,即在類路徑下不能加載指定的類。

看一個示例:

 
 
 
 
  1. public static  Class getExistingClass(ClassLoader classLoader, String className) { 
  2.   try { 
  3.      return (Class) Class.forName(className, true, classLoader); 
  4.   } 
  5.   catch (ClassNotFoundException e) { 
  6.      return null; 
  7.   } 

它是受檢查異常,需要進行手工捕獲。

6、ClassCastException

類轉(zhuǎn)換異常,將一個不是該類的實例轉(zhuǎn)換成這個類就會拋出這個異常。

如將一個數(shù)字強制轉(zhuǎn)換成字符串就會報這個異常:

 
 
 
 
  1. Object x = new Integer(0); 
  2. System.out.println((String)x); 

這是運行時異常,不需要手工捕獲。

7、NoSuchMethodException

沒有這個方法異常,一般發(fā)生在反射調(diào)用方法的時候,如:

 
 
 
 
  1. public Method getMethod(String name, Class... parameterTypes) 
  2.     throws NoSuchMethodException, SecurityException { 
  3.     checkMemberAccess(Member.PUBLIC, Reflection.getCallerClass(), true); 
  4.     Method method = getMethod0(name, parameterTypes, true); 
  5.     if (method == null) { 
  6.         throw new NoSuchMethodException(getName() + "." + name + argumentTypesToString(parameterTypes)); 
  7.     } 
  8.     return method; 

它是受檢查異常,需要進行手工捕獲。

8、IndexOutOfBoundsException

索引越界異常,當操作一個字符串或者數(shù)組的時候經(jīng)常遇到的異常。

如圖所示,它是運行時異常,不需要手工捕獲。

9、ArithmeticException

算術(shù)異常,發(fā)生在數(shù)字的算術(shù)運算時的異常,如一個數(shù)字除以 0 就會報這個錯。

 
 
 
 
  1. double n = 3 / 0; 

這個異常雖然是運行時異常,可以手工捕獲拋出自定義的異常,如:

 
 
 
 
  1. public static Timestamp from(Instant instant) { 
  2.     try { 
  3.         Timestamp stamp = new Timestamp(instant.getEpochSecond() * MILLIS_PER_SECOND); 
  4.         stamp.nanos = instant.getNano(); 
  5.         return stamp; 
  6.     } catch (ArithmeticException ex) { 
  7.         throw new IllegalArgumentException(ex); 
  8.     } 

10、SQLException

SQL異常,發(fā)生在操作數(shù)據(jù)庫時的異常。

如下面的獲取連接:

 
 
 
 
  1. public Connection getConnection() throws SQLException { 
  2.     if (getUser() == null) { 
  3.         return DriverManager.getConnection(url); 
  4.     } else { 
  5.         return DriverManager.getConnection(url, getUser(), getPassword()); 
  6.     } 

又或者是獲取下一條記錄的時候:

 
 
 
 
  1. boolean next() throws SQLException; 

它是受檢查異常,需要進行手工捕獲。


當前名稱:10 個讓人深惡痛絕的 Java 異常
網(wǎng)站鏈接:http://m.5511xx.com/article/djpopdi.html