Java 中的建構函式可以丟擲異常嗎?
是的,建構函式可以在 Java 中丟擲異常。
建構函式是一種特殊的型別的方法,用於初始化物件,並且用於使用new 關鍵字建立類的物件,其中物件也被稱為類的例項。類的每個物件都將擁有自己的狀態(例項變數)並訪問其類的方法。
從建構函式中丟擲異常
- 受檢異常可用於指示在嘗試建立例項時出現的合法問題,而非受檢異常通常表示客戶端程式碼或建構函式本身中的錯誤。
- 在這兩種情況下,物件實際上是在堆空間中分配的,但不會返回對它的引用。物件保持部分初始化狀態,直到被垃圾回收。因此,我們得出結論,從建構函式本身(透過使用this引用)儲存對物件的引用是一件危險的事情,因為我們可能會訪問處於無效狀態的物件。
- 關於建構函式中異常的另一個重要事項與反射有關。例如,當我們需要使用類物件(例如test)呼叫空建構函式時,有時我們會使用test.newInstance()方法。
- 建構函式丟擲的任何異常都會在不更改的情況下傳播。換句話說,newInstance()方法可能會丟擲它甚至沒有宣告的受檢異常。
示例
public class ConstructorExceptionTest {
public ConstructorExceptionTest() throws InterruptedException {
System.out.println("Preparing an Object");
Thread.sleep(1000);
System.out.println("Object is ready");
}
public static void main(String args[]) {
try {
ConstructorExceptionTest test = new ConstructorExceptionTest();
} catch (InterruptedException e) {
System.out.println("Got interrupted...");
}
}
}輸出
Preparing an Object Object is ready
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP