Java 捕獲所有異常的技巧與 Exception 核心方法詳解
在 Java 異常處理中,有時需要一個「安全網」捕獲所有可能的異常。透過捕獲基底類別 Exception 即可達成,但須注意順序與資訊提取技巧。本文將說明捕獲所
Java 異常重新拋出機制詳解:保留堆疊追蹤與 fillInStackTrace 進階用法
在異常處理流程中,有時需要在捕獲異常後記錄日誌、包裝資訊,再向上層拋出。Java 提供兩種重新拋出方式:直接 throw e 保留原始堆疊,或呼叫 fillIn
Java 標準異常體系全景圖:Throwable、Error 與 Exception 階層解析
Java 異常處理機制的核心在於 java.lang.Throwable 類別及其兩大直系子類:Error 與 Exception。理解這層階層結構,是掌握 J
深入理解 Java RuntimeException:特性、處理機制與最佳實務
在 Java 異常體系中,RuntimeException 佔有特殊地位。它是所有「未檢查異常」的父類別,代表程式邏輯錯誤而非外部環境問題。本文將剖析 Runt
Java 自訂異常類別完整指南:從繼承 Exception 到豐富異常資訊
在 Java 開發中,雖然內建的異常類別已能涵蓋大多數常見錯誤情境,但實際專案往往需要表達特定業務邏輯的錯誤狀態。此時建立自訂異常類別便顯得尤為重要。本文將詳細
Java 方法覆寫異常限制:檢查型異常不可擴大、構造器例外
核心規則 覆寫方法 不可拋出新的檢查型異常,只能拋出父類方法聲明的異常或其子類。 可拋出更少或不拋出異常(縮小範圍)。 非檢查型異常 (RuntimeExce
finally 核心用途:非記憶體資源釋放保證
為何需要 finally Java 有 GC 管理記憶體,但文件句柄、網絡連線、資料庫連線、螢幕繪圖資源等需顯式釋放,finally 確保無論是否拋出異常都執行
finally 異常遮蓋缺陷:原始異常丟失風險
現象演示 void f() throws VeryImportantException { throw new VeryImportantException()
構造器異常處理難點:資源清理時機與 finally 陷阱
核心問題 構造器中途拋出異常時,已獲取資源(如開啟文件)需清理,但 finally 會在構造器正常結束時也執行,導致過早釋放。 模範模式:顯式 cleanup(
Java 異常捕獲匹配規則:繼承層級與捕獲順序
匹配機制 異常拋出後,catch 子句按宣告順序搜尋「最近匹配」。 子類異常可被父類 catch 捕獲(多型)。 範例 try { throw new Sn
Java IO 系統演進:從 1.0 到 1.1 的類庫擴展與挑戰
設計難點 需覆蓋文件、控制台、網絡三大場景;支援順序/隨機、二進制/字符、按行/按字等多種存取模式。 演進脈絡 JDK 1.0:僅位元組流(InputStre
Java IO 流架構基礎:InputStream/OutputStream 雙層次結構
核心抽象 InputStream:定義 read() 讀取單字節/位元組陣列,所有輸入流父類。 OutputStream:定義 write() 寫入單字節/位
InputStream 六大核心來源:字節陣列、字串、文件、管道、序列與裝飾基類
資料來源分類 類別來源構造參數典型用途 ByteArrayInputStream記憶體位元組陣列byte[] buffer單元測試、內存數據輸入 String
OutputStream 四大核心子類:ByteArray、File、Pipe 與 Filter
資料目的地分類 類別目的地構造參數典型用途 ByteArrayOutputStream記憶體緩衝區可選初始大小捕獲輸出轉為位元組陣列 FileOutputSt
Java IO 裝飾者模式:FilterInputStream/FilterOutputStream 透明擴展流功能
模式定義 裝飾者模式動態、透明地為物件添加職責。所有裝飾者與被裝飾物件共享相同介面(InputStream/OutputStream),客戶端無差別呼叫。 Ja
FilterInputStream 裝飾者家族:DataInputStream、BufferedInputStream、LineNumberInputStream、PushbackInputStream
裝飾者基類 FilterInputStream 持有 InputStream in,委派所有 read(),子類擴展功能。 四大具體裝飾器 類別功能典型構造