JAVA上機(jī)實(shí)驗(yàn)new輸入
《JAVA上機(jī)實(shí)驗(yàn)new輸入》由會(huì)員分享,可在線閱讀,更多相關(guān)《JAVA上機(jī)實(shí)驗(yàn)new輸入(33頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第 6章 輸 入 /輸 出 和 異 常 處 理 在 實(shí) 際 的 應(yīng) 用 開 發(fā) 中 經(jīng) 常 會(huì) 遇 到 數(shù) 據(jù) 輸 入 /輸 出 的需 求 , 這 樣 的 需 求 在 Java中 使 用 I/O流 來 實(shí) 現(xiàn) 。 6.1 I/O流 一 個(gè) 好 的 程 序 語 言 , 完 善 的 輸 入 輸 出 功 能 是 必 不可 少 的 。 在 Java中 將 不 同 來 源 和 目 標(biāo) 的 數(shù) 據(jù) 統(tǒng) 一 抽 象 為 流 ,通 過 對(duì) 流 對(duì) 象 的 操 作 來 完 成 I/O功 能 。 Java中 的 流 很 靈 活 , 可 以 連 接 到 各 種 不 同 的 源 或目 標(biāo) , 如 磁 盤 文 件 、
2、鍵 盤 ( 輸 入 設(shè) 備 ) 、 顯 示 器( 輸 出 設(shè) 備 ) 、 網(wǎng) 絡(luò) 等 。 6.1.1 流 的 層 次 Java中 所 有 的 I/O都 是 通 過 流 來 實(shí) 現(xiàn) 的 , 可 以 將流 理 解 為 連 接 到 數(shù) 據(jù) 目 標(biāo) 或 源 的 管 道 , 可 以 通過 連 接 到 源 的 流 從 源 當(dāng) 中 讀 取 數(shù) 據(jù) , 或 通 過 連接 到 目 標(biāo) 的 流 向 目 標(biāo) 中 寫 入 數(shù) 據(jù) 。 根 據(jù) 流 的 方 向 可 以 將 其 分 為 兩 類 : 輸 入 流 和 輸出 流 。 用 戶 可 以 從 輸 入 流 中 讀 取 信 息 , 向 輸 出流 中 寫 信 息 。 根 據(jù)
3、 流 處 理 數(shù) 據(jù) 類 型 的 不 同 也 可 以 將 其 分 為 兩類 : 字 節(jié) 流 與 字 符 流 。 Java中 I/O流 是 由 java.io包 來 實(shí) 現(xiàn) 的 , 其 中 的 類 大 致 分為 輸 入 和 輸 出 兩 大 部 分 。 在 java.io包 最 頂 層 包 含 子 類 較 多 的 兩 個(gè) 類 是InputStream和 OutputStream。 這 兩 個(gè) 類 均 為 抽 象 類 。java.io包 中 的 很 多 類 都 是 從 這 兩 個(gè) 類 繼 承 而 來 的 . 6.1.2 輸 入 流 和 輸 出 流 前 面 介 紹 過 , Java的 I/O類 庫 分
4、 成 輸 入 和 輸 出 兩 大部 分 。 所 有 InputStream和 Reader的 派 生 類 都 有 一 個(gè) 繼 承下 來 的 , 能 讀 取 單 個(gè) 或 byte數(shù) 組 的 read()方 法 。 所 有 OutputStream和 Writer的 派 生 類 都 有 一 個(gè)write()方 法 。 6.1.3 字 節(jié) 流 和 字 符 流 根 據(jù) 流 處 理 數(shù) 據(jù) 類 型 的 不 同 也 可 以 將 其 分 為 兩 類 :字 節(jié) 流 與 字 符 流 , 下 面 列 出 了 這 兩 種 流 的 不 同 之處 。 字 節(jié) 流 :字 節(jié) 流 以 字 節(jié) 為 基 本 單 位 來 處 理
5、 數(shù) 據(jù)的 輸 入 /輸 出 , 一 般 都 用 于 對(duì) 二 進(jìn) 制 數(shù) 據(jù) 的 讀 寫 ,如 聲 音 、 圖 像 等 。 字 符 流 :字 符 流 以 字 符 為 基 本 單 位 來 處 理 數(shù) 據(jù) 的 輸入 和 輸 出 , 一 般 都 用 于 對(duì) 文 本 類 型 數(shù) 據(jù) 的 讀 寫 ,如 文 本 文 件 、 網(wǎng) 絡(luò) 中 發(fā) 送 的 文 本 信 息 等 。 雖 然 文 本 數(shù) 據(jù) 也 可 以 看 作 二 進(jìn) 制 數(shù) 據(jù) , 但 一 般 采用 字 符 流 處 理 文 本 數(shù) 據(jù) 比 采 用 字 節(jié) 流 效 率 更 高 ,也 更 方 便 。 6.1.4 隨 機(jī) 存 取 文 件 流 前 面 介 紹
6、 的 都 是 順 序 訪 問 的 流 , 在 Java還 有 一 種支 持 隨 機(jī) 訪 問 的 流 RandomAccessFile。 這 個(gè) 類 的實(shí) 例 支 持 同 時(shí) 進(jìn) 行 的 讀 /寫 操 作 。 一 個(gè) 隨 機(jī) 存 取 文件 好 比 存 儲(chǔ) 在 文 件 系 統(tǒng) 中 的 一 個(gè) 大 “ 數(shù) 組 ” 。 該“ 數(shù) 組 ” 有 一 個(gè) 文 件 指 針 , 輸 入 操 作 從 該 指 針 所指 示 的 地 方 開 始 讀 取 數(shù) 據(jù) , 每 讀 一 個(gè) 字 節(jié) , 指 針后 移 一 個(gè) 字 節(jié) 。 如 果 一 個(gè) 隨 機(jī) 存 取 文 件 以 讀 /寫 方式 創(chuàng) 建 , 也 可 對(duì) 其 進(jìn)
7、行 輸 出 ( 寫 ) 操 作 。 輸 出 操作 也 從 文 件 指 針 所 指 的 地 方 寫 字 節(jié) , 并 將 指 針 置于 所 寫 字 節(jié) 之 后 。 當(dāng) 輸 出 操 作 超 過 了 “ 數(shù) 組 ” 的末 尾 , 將 導(dǎo) 致 文 件 的 擴(kuò) 大 。 文 件 指 針 可 用getFilePointer()方 法 讀 取 , 用 seek()方 法 設(shè) 置 。 6.2 I/O流 的 使 用 本 節(jié) 將 具 體 介 紹 如 何 使 用 這 些 流 類 , 包 括 標(biāo) 準(zhǔn) 的I/O輸 出 、 基 本 的 I/O流 、 過 濾 流 、 文 件 的 隨 機(jī) 讀寫 和 流 的 分 割 。 6.2.1
8、 標(biāo) 準(zhǔn) 的 I/O流 下 面 首 先 介 紹 標(biāo) 準(zhǔn) 的 I/O流 的 使 用 方 法 。 在 Java語 言 中 , 鍵 盤 用stdin表 示 , 監(jiān) 視 器 用 stdout表 示 。 它 們 均 被 封 裝 在 System類 的 類變 量 in和 out中 , 分 別 對(duì) 應(yīng) 于 System.in和 System.out。 事 實(shí) 上 ,類 變 量 in和 out分 別 屬 于 類 InputStream和 PrintStream, 只 是 由 于InputStream和 PrintStream不 能 用 new()方 法 直 接 創(chuàng) 建 , 所 以 才 在System類 中 聲
9、 明 為 如 下 的 3個(gè) 類 變 量 。 public static InputStream in public static PrintStream out public static PrintStream err 6.2.2 基 本 的 I/O流 1 InputStream類 InputStream類 是 以 字 節(jié) 為 單 位 的 輸 入 流 。 數(shù) 據(jù) 來 源 可 以 是鍵 盤 , 也 可 以 是 諸 如 Internet這 樣 的 網(wǎng) 絡(luò) 環(huán) 境 。 這 個(gè) 類 可作 為 許 多 輸 入 類 的 基 類 。 InputStream是 一 個(gè) 抽 象 類 , 因 此不 能 建 立
10、它 的 實(shí) 例 , 用 戶 只 能 使 用 它 的 子 類 。 注 意 , 大 多數(shù) 輸 入 方 法 都 拋 出 了 IOException異 常 , 因 此 如 果 程 序 中 調(diào)用 了 這 些 輸 入 方 法 , 就 必 須 捕 獲 和 處 理 IOException異 常 。 6.2.2 基 本 的 I/O流 2 OutputStream類 OutputStream是 與 InputStream相 對(duì) 應(yīng) 的 輸 出 流 類 , 它 具 有輸 出 流 的 所 有 基 本 功 能 。 由 于 OutputStream實(shí) 現(xiàn) 輸 出 流 的許 多 方 法 與 InputStream流 的 方
11、 法 相 對(duì) 應(yīng) , 下 面 僅 簡(jiǎn) 單 列 出與 輸 入 流 類 相 對(duì) 應(yīng) 的 方 法 。 public abstract void write(int b ) throws IOException: 向 流 中 寫 入 一 個(gè) 字 節(jié) 。 public void write(byte b) throws IOException:向 流 中 寫 入 一 個(gè) 字 節(jié) 數(shù) 組 。 public void write(byte b,int off,int len) throws IOException: 在 從 數(shù) 組 中 的 第 off個(gè) 位 置 開 始 的len個(gè) 位 置 上 寫 入 數(shù) 據(jù)
12、 。 public void flush ( ) throws IOException: 清 空流 并 強(qiáng) 制 將 緩 沖 區(qū) 中 所 有 數(shù) 據(jù) 寫 入 到 流 中 。 public void close ( ) throws IOException: 關(guān) 閉 流 對(duì) 象 。 6.2.2 基 本 的 I/O流 3 PipedInputStream和 PipedOutputStream類 管 道 流 用 于 線 程 之 間 的 通 信 。 一 個(gè) PipedInputStream必 須連 接 一 個(gè) PipedOutputStream, 而 且 一 個(gè)PipedOutputStream也 必
13、須 連 接 一 個(gè) PipedInputStream。 這兩 個(gè) 類 用 于 實(shí) 現(xiàn) 與 Unix中 的 管 道 相 似 的 管 道 流 。PipedInputStream實(shí) 現(xiàn) 管 道 的 輸 入 端 , 而PipedOutputStream用 于 實(shí) 現(xiàn) 管 道 的 輸 出 端 。 PipedInputStream類 從 管 道 中 讀 取 數(shù) 據(jù) 時(shí) , 這 個(gè) 管 道 數(shù) 據(jù)是 由 PipedOutputStream類 寫 入 的 。 因 此 , 在 使 用PipedInputStream類 之 前 , 必 須 將 它 連 接 到PipedOutputStream類 。 可 以 在 實(shí)
14、 例 化 PipedInputStream類時(shí) 建 立 這 個(gè) 連 接 , 或 者 調(diào) 用 Connect()方 法 建 立 連 接 。PipedInputStream中 包 含 用 于 讀 數(shù) 據(jù) 的 底 層 方 法 , 同 時(shí) 也 提 供 了 讀 數(shù) 據(jù) 的 高 層 接 口 。 6.2.2 基 本 的 I/O流 4 SequenceInputStream類 SequenceInputStream類 是 InputStream類 的 一 個(gè) 子 類 。 使 用 這 個(gè)類 可 以 將 兩 個(gè) 獨(dú) 立 的 流 合 并 為 一 個(gè) 邏 輯 流 。 合 并 后 的 流 中 的 數(shù) 據(jù)按 照 在 各
15、個(gè) 流 中 指 定 的 順 序 讀 出 。 第 一 個(gè) 流 結(jié) 束 時(shí) , 使 用 無 縫 連接 的 方 式 開 始 從 第 二 個(gè) 流 中 讀 取 數(shù) 據(jù) 。 下 面 是 一 個(gè) 使 用 SequenceInputStream類 的 例 子 , 代 碼 片 段 如 下 。 1 InputStream is1 = new FileInputStream(file1.dat); 2 InputStream is2 = new FileInputStream(file2.dat); 3 SequenceInputStream sis = new SequenceInputStream(is1,is
16、2); 4 / 合 并 兩 個(gè) 流 5 for(;) 6 int data = sis.read( ); 7 if (data = = -1) break; 8 6.2.3 過 濾 流 從 前 面 的 介 紹 可 以 知 道 , 過 濾 流 FilterInputStream和FilterOutputStream分 別 是 InputStream和 OutputStream的子 類 , 而 且 它 們 也 都 是 抽 象 類 。 FilterInputStream類 和FilterOutputStream類 都 重 寫 了 超 類 InputStream和OutputStream的 方 法 。
17、 FilterInputStream和 FilterOutputStream為 讀 寫 處 理 數(shù) 據(jù)的 過 濾 流 定 義 接 口 。 其 子 類 則 進(jìn) 一 步 實(shí) 現(xiàn) 接 口 和 方 法 。 這些 子 類 有 以 下 幾 種 。 DataInputStream類 和 DataOutputStream類 BufferedInputStream和 BufferedOutputStream類 LineNumberInputStream類 PushbackInputStream類 6.2.4 文 件 隨 機(jī) 讀 寫 當(dāng) 程 序 把 一 個(gè) RandomAccessFile對(duì) 象 與 一 個(gè) 文
18、件關(guān) 聯(lián) 時(shí) , 程 序 從 文 件 定 位 指 針 指 定 的 位 置 開 始 讀寫 數(shù) 據(jù) , 并 且 把 所 有 數(shù) 據(jù) 當(dāng) 成 基 本 數(shù) 據(jù) 類 型 來 操作 。 使 用 RandomAccessFile除 了 可 以 讀 寫 文 件 中 任 意位 置 的 字 節(jié) 外 , 還 可 以 讀 寫 文 本 和 Java的 基 本 數(shù)據(jù) 類 型 。 6.2.5 流 的 分 割 流 的 分 割 是 由 StreamTokenizer類 實(shí) 現(xiàn) 的 。 該 類 把一 個(gè) 流 的 內(nèi) 容 劃 分 成 若 干 個(gè) token單 位 , 一 次 可 以讀 寫 一 個(gè) token。 StreamToke
19、nizer類 用 于 將 任 何 InputStream分 割為 一 系 列 “ 記 號(hào) ( Token) ” 。 6.3 對(duì) 象 的 序 列 化 Java的 對(duì) 象 序 列 化 用 于 將 一 個(gè) 實(shí) 現(xiàn) 了Serializable接 口 的 對(duì) 象 轉(zhuǎn) 換 成 一 組 byte, 這 樣以 后 要 用 這 個(gè) 對(duì) 象 時(shí) 候 , 就 能 把 這 些 byte數(shù) 據(jù) 恢復(fù) 出 來 , 并 據(jù) 此 重 新 構(gòu) 建 那 個(gè) 對(duì) 象 了 。 這 一 點(diǎn) 甚 至 在 跨 網(wǎng) 絡(luò) 的 環(huán) 境 下 也 是 如 此 , 這 就 意味 著 序 列 化 機(jī) 制 能 自 動(dòng) 補(bǔ) 償 操 作 系 統(tǒng) 方 面 的
20、差 異 。也 就 是 說 , 可 以 在 Windows機(jī) 器 上 創(chuàng) 建 一 個(gè) 對(duì) 象 ,序 列 化 之 后 , 再 通 過 網(wǎng) 絡(luò) 傳 到 Unix機(jī) 器 上 , 然 后在 那 里 進(jìn) 行 重 建 , 而 不 用 擔(dān) 心 在 不 同 的 平 臺(tái) 上 數(shù)據(jù) 是 怎 樣 表 示 的 , byte順 序 怎 樣 , 或 者 別 的 什 么細(xì) 節(jié) 。 6.3.1 存 儲(chǔ) 對(duì) 象 Java序 列 化 技 術(shù) 可 以 將 一 個(gè) 對(duì) 象 的 狀 態(tài) 寫 入 一 個(gè)byte流 里 , 并 且 可 以 從 其 他 地 方 把 該 byte流 里 的數(shù) 據(jù) 讀 出 來 , 重 新 構(gòu) 造 一 個(gè) 相 同
21、的 對(duì) 象 。 這 種 機(jī)制 允 許 將 對(duì) 象 通 過 網(wǎng) 絡(luò) 進(jìn) 行 傳 播 , 并 可 以 隨 時(shí) 把對(duì) 象 存 儲(chǔ) 到 數(shù) 據(jù) 庫 、 文 件 等 系 統(tǒng) 里 。 Java的 序 列化 機(jī) 制 是 RMI、 EJB、 JNNI等 技 術(shù) 的 技 術(shù) 基 礎(chǔ) 。 并 非 所 有 的 Java類 都 可 以 序 列 化 , 為 了 使 指 定 的類 可 以 實(shí) 現(xiàn) 序 列 化 , 必 須 使 該 類 實(shí) 現(xiàn) 接 口java.io.Serializable。 需 要 注 意 的 是 , 該 接 口什 么 方 法 也 沒 有 。 實(shí) 現(xiàn) 該 類 只 是 簡(jiǎn) 單 的 標(biāo) 記 該 類準(zhǔn) 備 支 持
22、 序 列 化 功 能 。 6.3.2 對(duì) 象 的 序 列 化 Java1.1以 后 添 加 了 對(duì) 象 序 列 化 機(jī) 制 , 可 以 把 實(shí) 現(xiàn)了 Serializable接 口 的 對(duì) 象 序 列 化 。 Serializable接 口 中 沒 有 定 義 任 何 方 法 , 只 是 一個(gè) 特 殊 的 標(biāo) 記 , 用 來 告 訴 Java 編 譯 器 , 這 個(gè) 對(duì) 象參 加 了 序 列 化 的 協(xié) 議 , 可 以 把 它 序 列 化 。 因 此 一 個(gè) 類 實(shí) 現(xiàn) Serializable接 口 時(shí) , 并 不 需 要實(shí) 現(xiàn) 任 何 針 對(duì) 該 接 口 的 方 法 , 6.3.3 對(duì) 象
23、 序 列 化 中 的 一 些 問 題 ( 1) 性 能 問 題 為 了 序 列 化 類 A的 一 個(gè) 實(shí) 例 對(duì) 象 , 所 需 保 存 的 全 部 信 息 如 下 。 與 此 實(shí) 例 對(duì) 象 相 關(guān) 的 全 部 類 的 元 數(shù) 據(jù) (metadata)信 息 ; 因?yàn)?繼 承 關(guān) 系 , 類 A的 實(shí) 例 對(duì) 象 也 是 其 任 一 父 類 的 對(duì) 象 。 因 而 ,需 要 將 整 個(gè) 繼 承 鏈 上 的 每 一 個(gè) 類 的 元 數(shù) 據(jù) 信 息 , 按 照 從 父到 子 的 順 序 依 次 保 存 起 來 。 ( 2) 版 本 信 息 當(dāng) 用 readObject()方 法 讀 取 一 個(gè)
24、序 列 化 對(duì) 象 的 byte流 信 息時(shí) , 會(huì) 從 中 得 到 所 有 相 關(guān) 類 的 描 述 信 息 以 及 示 例 對(duì) 象 的 狀態(tài) 數(shù) 據(jù) ; 然 后 將 此 描 述 信 息 與 其 本 地 要 構(gòu) 造 的 類 的 描 述 信息 進(jìn) 行 比 較 , 如 果 相 同 則 會(huì) 創(chuàng) 建 一 個(gè) 新 的 實(shí) 例 并 恢 復(fù) 其 狀態(tài) , 否 則 會(huì) 拋 出 異 常 。 這 就 是 序 列 化 對(duì) 象 的 版 本 檢 測(cè) 。 6.4 文 件 管 理 前 面 的 章 節(jié) 介 紹 了 Java中 的 各 種 I/O流 , 在 使 用I/O流 的 過 程 中 很 多 情 況 下 源 與 目 標(biāo) 都
25、 是 文 件 。 因此 , 本 節(jié) 將 介 紹 在 Java中 如 何 獲 取 目 錄 、 文 件 的信 息 以 及 對(duì) 目 錄 、 文 件 進(jìn) 行 管 理 。 6.4.1 File類 簡(jiǎn) 介 Java中 專 門 提 供 了 一 個(gè) 表 示 目 錄 與 文 件 的 類 java.io.File, 通 過 其 可 以 獲 取 文 件 、 目 錄 的 信息 , 對(duì) 文 件 、 目 錄 進(jìn) 行 管 理 。 File類 一 共 提 供 了 4個(gè) 構(gòu) 造 器 , 6.4.2 使 用 File類 下 面 的 例 子 創(chuàng) 建 MyFile文 件 夾 , 接 著 在 MyFile文件 夾 下 創(chuàng) 建 Chil
26、dFile.txt文 件 , 并 向 文 件 中 寫 入字 符 串 。 從 本 例 中 可 以 看 出 , 通 過 使 用 java.io包 中 提 供 的File類 可 以 方 便 地 對(duì) 文 件 、 目 錄 進(jìn) 行 管 理 。 6.5 異 常 處 理 開 發(fā) 核 心 業(yè) 務(wù) 代 碼 只 占 了 20% 30%的 時(shí) 間 , 而 用于 開 發(fā) 容 錯(cuò) 代 碼 的 時(shí) 間 卻 高 達(dá) 70% 80%, 這 大 大降 低 了 開 發(fā) 效 率 。 Java中 提 供 的 異 常 處 理 機(jī) 制 ,可 以 在 一 定 程 度 上 解 決 這 個(gè) 問 題 。 6.5.1 異 常 處 理 概 述 Jav
27、a中 定 義 了 很 多 異 常 類 。 每 個(gè) 異 常 類 都 代 表 了一 種 或 多 種 運(yùn) 行 錯(cuò) 誤 , 異 常 類 中 包 含 了 該 運(yùn) 行 的錯(cuò) 誤 信 息 和 處 理 錯(cuò) 誤 的 方 法 等 內(nèi) 容 。 每 當(dāng) Java程 序 運(yùn) 行 過 程 中 發(fā) 生 一 個(gè) 可 識(shí) 別 的 運(yùn) 行錯(cuò) 誤 時(shí) , 即 產(chǎn) 生 一 個(gè) 異 常 。 Java采 取 “ 拋 出 -捕 獲 ” 的 方 式 1、 try和 catch捕 獲 異 常 try 可 能 出 現(xiàn) 異 常 的 代 碼 catch(異 常 類 型 1 引 用 ) 異 常 類 型 1的 處 理 代 碼 catch(異 常 類 型
28、 n 引 用 ) 異 常 類 型 n的 處 理 代 碼 見 例 題 6-8 2、 finall語 句 塊 在 任 何 情 況 下 都 將 保 證 執(zhí) 行 。 finall finall塊 的 代 碼 見 例 題 6-9 6.5.2 異 常 的 層 次 結(jié) 構(gòu) 當(dāng) 異 常 發(fā) 生 時(shí) , Java會(huì) 將 該 異 常 包 裝 成 一 個(gè) 異 常 類 的 對(duì) 象 , 并 將其 引 用 作 為 參 數(shù) 傳 遞 給 相 應(yīng) 的 catch語 句 , 這 樣 在 catch語 句 中 就可 以 對(duì) 這 個(gè) 異 常 對(duì) 象 進(jìn) 行 操 作 。 1 捕 獲 異 常 : 是 由 外 界 因 素 產(chǎn) 生 的 ,
29、并 且 是 可 以 恢 復(fù) 的 。 說 明 : 在 調(diào) 用 可 能 拋 出 捕 獲 異 常 的 方 法 ( 或 構(gòu) 造 器 ) 時(shí) , 必 須 編 寫 處 理異 常 的 代 碼 , 否 則 編 譯 不 通 過 。 Java類 庫 中 有 一 個(gè) java.lang.Throwable類 , 繼 承自 java.lang.Object類 , 是 所 有 異 常 類 的 超 類 。 見 例 題 6-13 例 題 6-14 2 未 捕 獲 異 常 : Error類 及 子 類 以 及 RuntimeException類 及 其 子 類 。( 1) 繼 承 自 Error的 類 一 般 代 表 由 硬
30、 件 運(yùn) 行 失 敗 導(dǎo) 致 的嚴(yán) 重 錯(cuò) 誤 。 如 內(nèi) 存 耗 盡 。 程 序 不 能 從 Error中 恢 復(fù) 。( 2) RuntimeException類 的 子 類 通 常 是 指 一 些 程 序 運(yùn)行 時(shí) 錯(cuò) 誤 引 起 的 異 常 。 如 空 引 用 異 常 , 可 以 通 過 編 譯 ,但 運(yùn) 行 時(shí) 會(huì) 拋 出 NullPointException異 常 。( 3) 未 捕 獲 異 常 可 以 不 被 處 理 , 也 可 以 進(jìn) 行 處 理 。 見 例 題 6-15 6.5.3 自 定 義 異 常 有 時(shí) 系 統(tǒng) 中 已 有 的 異 常 類 型 不 能 滿 足 使 用 的
31、需 要 。這 時(shí) , 就 需 要 拋 出 自 定 義 的 異 常 對(duì) 象 。 1 創(chuàng) 建 自 己 的 異 常 類 ( 1) 充 當(dāng) 捕 獲 異 常 的 角 色 。 ( 2) 格 式 :class 類 名 extends Exception 或 其 他 捕 獲 異 常 類 類 體 ( 3) printStackTrace()、 toString()、 getMessage()方 法 。 分 別 返 回 異 常 調(diào) 用 棧 的 信 息 、 異 常 對(duì) 象 的 字符 串 表 示 、 異 常 對(duì) 象 中 攜 帶 的 出 錯(cuò) 信 息 。 見 例 題 6-162 使 用 自 定 義 的 異 常 類 格 式 : throw new 自 定 義 異 常 類 見 例 題 6-17.
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識(shí)與測(cè)量1平面圖形的認(rèn)識(shí)練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末豐收?qǐng)@作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級(jí)語文上冊(cè)第六單元知識(shí)要點(diǎn)習(xí)題課件新人教版
- 2022春一年級(jí)語文下冊(cè)課文5識(shí)字測(cè)評(píng)習(xí)題課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版