成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關(guān)于Java異常的十大問題

開發(fā) 前端
本文總結(jié)了有關(guān) Java 異常的10個常見問題。

1.選中與未選中

簡而言之,檢查異常必須在方法中顯式捕獲或在方法的 throws 子句中聲明。未經(jīng)檢查的異常是由無法解決的問題引起的,例如除以零、空指針等。經(jīng)檢查的異常尤其重要,因為您希望使用您的 API 的其他開發(fā)人員知道如何處理異常。

例如,IOException 是常用的已檢查異常,而 RuntimeException 是未檢查異常。在閱讀其余部分之前,您可以查看Java 異常層次圖。

2. 異常管理的優(yōu)秀實踐

如果可以正確處理異常,則應(yīng)將其捕獲,否則應(yīng)將其拋出。

3、為什么try中定義的變量不能在catch或finally中使用?

在下面的代碼中,try 塊中聲明的字符串s 不能在catch 子句中使用。代碼沒有通過編譯。

try {
File file = new File("path");
FileInputStream fis = new FileInputStream(file);
String s = "inside";
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println(s);
}

原因是您不知道在 try 塊中的哪個位置會拋出異常。很可能在聲明對象之前拋出異常。對于這個特定的示例,這是正確的。

4. 為什么 Double.parseDouble(null) 和 Integer.parseInt(null) 會拋出不同的異常?

他們實際上拋出了不同的異常。這是JDK的問題。它們是由不同的開發(fā)人員開發(fā)的,因此不值得過多思考。

Integer.parseInt(null); 
// throws java.lang.NumberFormatException: null

Double.parseDouble(null);
// throws java.lang.NullPointerException

5、Java中常用的運行時異常

這里只是其中的一些。

IllegalArgumentException
ArrayIndexOutOfBoundsException

當(dāng)條件不滿足時,可以在 if 語句中使用它們,如下所示:

if (obj == null) {
throw new IllegalArgumentException("obj can not be null");

6.我們可以在同一個catch子句中捕獲多個異常嗎?

答案是肯定的。只要這些異常類可以追溯到類繼承層次結(jié)構(gòu)中的同一個超類,您就可以只使用該超類。

7、java中構(gòu)造函數(shù)可以拋出異常嗎?

答案是肯定的。構(gòu)造函數(shù)是一種特殊的方法。這是一個代碼示例。

8. 在 final 子句中拋出異常

執(zhí)行以下操作是合法的:

public static void main(String[] args) {
File file1 = new File("path1");
File file2 = new File("path2");
try {

FileInputStream fis = new FileInputStream(file1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
FileInputStream fis = new FileInputStream(file2);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

但是為了獲得更好的代碼可讀性,您應(yīng)該將嵌入的 try-catch 塊包裝為新方法,然后將方法調(diào)用放在 finally 子句中。

public static void main(String[] args) {
File file1 = new File("path1");
File file2 = new File("path2");
try {

FileInputStream fis = new FileInputStream(file1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
methodThrowException();
}
}

9. 可以在 finally 塊中使用 return

是的,它可以。

10. 為什么開發(fā)者默默消費異常?

有很多像下面這樣的時間碼段。如果正確處理異常如此重要,為什么開發(fā)人員繼續(xù)這樣做?

try {
...
} catch(Exception e) {
e.printStackTrace();
}

忽略很容易。頻繁出現(xiàn)并不代表正確。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2019-10-21 08:31:34

容器微服務(wù)docker

2013-06-21 14:36:02

JavaEEx性能

2013-07-25 14:56:37

JavaEE 性能

2022-06-16 11:02:18

IT領(lǐng)導(dǎo)者首席信息官

2023-09-19 10:19:24

2009-07-16 10:04:56

Java語言

2015-11-02 14:15:05

2012-02-14 09:59:09

NoSQLCouchDB

2024-06-21 14:13:45

2009-12-08 14:42:30

Windows 7操作

2014-01-16 09:25:46

2015-04-22 12:08:16

JAVAMap問題

2023-08-03 09:45:52

2013-01-18 11:18:02

2011-03-16 13:54:51

十大問題應(yīng)用iOS

2020-02-05 08:35:24

云計算

2011-11-16 09:43:07

2011-03-11 14:36:56

SQL Server數(shù)

2012-01-09 11:25:32

云計算

2024-08-06 10:00:11

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日本欧美在线 | 精品欧美一区二区三区久久久 | 成人影院网站ww555久久精品 | 国产三区在线观看视频 | 91精品国产一区二区三区 | 九九久久久 | 国产一区二区三区精品久久久 | 欧美激情在线精品一区二区三区 | 亚洲美女一区 | 久久伊人精品 | 国产精品精品久久久 | 成人在线精品视频 | 亚洲人精品午夜 | 欧美日韩高清在线观看 | 国产精品久久二区 | 国产7777| www.国产视频 | 久久精品国产99国产精品亚洲 | 国产精品久久 | 国产精品久久久久9999鸭 | 精品一区二区电影 | 九七午夜剧场福利写真 | 国产一级视频在线 | 日本精品视频 | av片免费 | 久久久久久久久淑女av国产精品 | 日韩欧美一区二区三区四区 | 日韩电影一区二区三区 | 亚洲视频一区 | 欧美精品一区二区三区在线播放 | 中文字幕一区二区在线观看 | 日日夜夜精品视频 | 亚洲综合视频一区 | 日韩在线xx | 精品久久影院 | 国产精品99久久久久久大便 | 国产精品污www一区二区三区 | 欧美日韩高清 | 国产操操操 | 国产在线1 | www.97zyz.com|