CodeGym University
學習
課程
任務
問卷及小測驗
遊戲
幫助
學習提醒時程表
社群
使用者
論壇
聊天
文章
成功故事
活動
評論
訂閱
亮色主題
課堂
評論
關於我們
開始
開始學習
現在就開始學習
探索地圖
課堂
所有探索
所有等級
拋出異常
Module 1 no mu
等級 21,
課堂 2
1.throw操作員 當一個異常被一個catch塊捕獲時,直到它被拋給 Java 機器,它只是一個繼承Exception(或者更確切地說,Throwable)的對象。異常對象本身沒有任何神奇的屬性。 異常如何工作的所有邏輯只是 Java 機器在拋出異常時的一種特殊行為方式。 您始終可以將捕獲的異常重新拋出給 Java 機器。為此,您需要使用throw運算符: throw exception; 例子: 代碼 控制台輸出 try
異常類型
Module 1 no mu
等級 21,
課堂 3
1.異常類型 所有的異常分為4種類型,它們實際上是相互繼承的類。 Throwable班級 所有異常的基類是類Throwable。該類Throwable包含將當前調用堆棧(當前方法的堆棧跟踪)寫入數組的代碼。稍後我們將了解堆棧跟踪是什麼。 throw運算符只能接受從Throwable類派生的對象。儘管理論上您可以編寫類似 的代碼throw new Throwable();,但通常沒有人這樣做。該類的主要目的Throwable是為所有異常提供一個父類。 Error班級 下一個異常
創建自己的例外
Module 1 no mu
等級 22,
課堂 0
我想您可能遇到過這樣的情況:您運行代碼並以類似NullPointerException、ClassCastException或更糟的方式結束......接下來是調試、分析、谷歌搜索等的漫長過程。異常是非常棒的:它們表明了問題的性質和發生的地方。如果您想重溫記憶並了解更多信息,請查看這篇文章:異常:已檢查、未檢查和自定義。 也就是說,在某些情況下您可能需要創建自己的異常。例如,假設您的代碼需要從由於某種原因不可用的遠程服務請求信息。或者假設有人填寫銀行卡申請表並提供了一個電話號
堆棧跟踪
Module 1 no mu
等級 22,
課堂 1
1.獲取堆棧跟踪 Java 編程語言為程序員提供了許多方法來獲取有關程序中發生的事情的信息。而不僅僅是文字。 例如,C++程序編譯後變成了一個充滿機器代碼的大文件,而程序員在運行時可用的只是包含當前正在執行的機器代碼的內存塊的地址。不是很多,讓我們說。 但是對於 Java 來說,即使在程序被編譯之後,類仍然是類,方法和變量並沒有消失,程序員有很多方法可以獲取有關程序中發生的事情的信息。 堆棧跟踪 例如,在程序執行的某個時刻,您可以找出當前正在執行的方法的類和名稱。而不僅僅是一
Try-with-resources 語句
Module 1 no mu
等級 22,
課堂 2
1. 外部資源 當 Java 程序運行時,有時它會與 Java 機器外部的實體進行交互。例如,磁盤上的文件。這些實體通常稱為外部資源。內部資源是在 Java 機器內部創建的對象。 通常,交互遵循以下方案: 追踪資源 操作系統嚴格跟踪可用資源,並控制不同程序對它們的共享訪問。例如,如果一個程序更改了一個文件,那麼另一個程序就不能更改(或刪除)該文件。這個原則並不局限於文件,但它們提供了最容易理解的例子。 操作系統具有允許程序獲取和/或釋放資源的函數 (API)。如果資源繁忙,則
級別的附加課程
Module 1 no mu
等級 22,
課堂 3
在這個級別,您了解了異常是如何以及為什麼會發生的。這對你以後作為程序員的工作來說是一個非常重要的話題。我們相信您不會因為看到更多真實世界的示例和幾篇額外的文章而受到傷害。 異常:捕獲和處理 這篇有趣的文章將有助於為您的新知識添加一些結構。 異常:選中、未選中和自定義 在本文中,您將了解有關異常及其組織方式的更多信息。最好的部分是:您將學習如何拋出自己的異常。你覺得如何?
Java中的保留字
Module 1 no mu
等級 23,
課堂 0
1.單詞表 與任何編程語言一樣,Java 具有具有特殊含義的詞。例如,return或if或while。這些詞稱為關鍵字(keywords),被Java語言認為是保留的。 您不能將這些詞用作變量名、方法名或類名。編譯器將始終以嚴格定義的方式解釋它們。54Java中有這樣的詞。 abstract assert boolean break byte case catch char class const continue default do double else enum ex
包裝異常
Module 1 no mu
等級 23,
課堂 1
3.包裝異常 受檢異常在理論上看起來很酷,但在實踐中卻是一個巨大的挫折。 假設你的項目中有一個超級流行的方法。它從您程序中的數百個地方調用。你決定向它添加一個新的檢查異常。很可能這個已檢查的異常真的很重要而且很特別,只有main()方法知道如果它被捕獲時該怎麼做。 這意味著您必須將已檢查的異常添加到throws調用您的超級流行方法的每個方法的子句中。以及在throws調用這些方法的所有方法的子句中。以及調用這些方法的方法。 結果,throws項目中一半方法的子句得到了一個新的
錯誤
Module 1 no mu
等級 23,
課堂 2
害怕錯誤,但不要用 Java 編寫它們!您可能已經對Java 中的異常有所了解。今天,至少粗淺的知識會讓你受益。我們將分析 Error 類和一種特殊的異常類型,當它出現在堆棧跟踪中時會嚇到很多人。 在 Java 的異常層次結構的頂部是Throwable類,它有兩個後代: Exception,它負責程序中的錯誤。 而我們今天的主角——Error ,它負責 JVM 中的錯誤。 值得一提的是,這些可能甚至不是編碼錯誤,而是通常不依賴於開發人員的問題。 如何處理錯誤 當捕獲“錯誤”時
開關表達式與開關語句
Module 1 no mu
等級 23,
課堂 3
當編寫帶有很多條件的代碼時,您肯定使用過if-else或switch語句。但是這種替代if-else的方法有缺點。有些人甚至稱switch語句為“反模式”。 那是什麼?反模式是錯誤代碼的常見模式,即問題的錯誤解決方案。程序員試圖在代碼中避免它們,因為它們會降低代碼質量。 但有個好消息:新版本的 Java 對該語言的語法進行了大量更改,其中一項更改會影響switch。感興趣嗎?那麼讓我們開始吧。 首先,有必要澄清一下為什麼switch是一種反模式。考慮以下代碼: switch
數據輸入流
Module 1 no mu
等級 24,
課堂 0
1.數據流 程序很少作為一個孤島存在。程序通常以某種方式與“外部世界”交互。這可以通過從鍵盤讀取數據、發送消息、從 Internet 下載頁面,或者相反,將文件上傳到遠程服務器來實現。 我們可以用一個詞來指代所有這些行為:程序與外界之間的數據交換。等等,這不僅僅是一個詞。 當然,數據交換本身可以分為接收數據和發送數據兩部分。例如,您使用Scanner對像從鍵盤讀取數據——這就是接收數據。然後您使用命令在屏幕上顯示數據System.out.println()——這就是發送數據。
鍊式流
Module 1 no mu
等級 24,
課堂 1
1.InputStreamReader類 流的另一個有趣的特性是您可以將多個流組合成鏈。一個流不僅可以從它的內部數據源中讀取數據,還可以從另一個流中讀取數據。 這是 Java 中一種非常強大的機制,它可以通過將一個流連接到另一個流來創建複雜的數據讀取場景。這樣的方案看起來像這樣: 當程序從數據流中讀取數據時,數據流又從其數據源(例如另一個數據流或文件)中讀取數據。 更重要的是,每個數據流不僅可以讀入和發出數據,還可以對其進行轉換或對其進行各種操作。這種“中間流”的一個很好的例
顯示更多
1
...
9
10
11
12
13
...
35
Please enable JavaScript to continue using this application.