⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yyrm3.html

📁 关于java学习的一些基本知识!
💻 HTML
📖 第 1 页 / 共 4 页
字号:
            类 可 以 这 样 引 入: import MyClass。 </P>
            <P>Java系 统 包: Java语 言 提 ?copy; 了 一 个 包 含 窗 口 工 具 箱,实 用 程 序, 一 般I/O,工 
            具 和 网 络 功 能 的 包。 </P>
            <P>java.applet 这 个 包 包 含 量 了 一 ?copy; 设 计applet的 类,用 一个 类Applet和 三 个 
            接 口. AppletContext;AppletStub;和AudioClip. </P>
            <P>java.awt 另 一 个 窗 口 工 具 箱 包.awt,包 含 了 一 ?copy; 产 生装 饰 物 和GUI成 员 的 
            类。 这 个package包 
            括:Button,Checkbox,Choice,Component,Graphics,Menu,Pane1,TextArea和 
            TextField。 </P>
            <P>java.io I/O package包 含 文 件 输 入/输 出 类,FileInput Stream和File 
            OutputStream. </P>
            <P>java.lang 这 个 包 包 含Java语 言 类,包 含:对 象,线 程,异 常 出 口,系统,整 数,原 点,数 学,字 
            符 等。 </P>
            <P>java.net 这 个 类 支 持TCP/IP网 络 协 议, 并 包 含Socket类,URL和URL相联 系 的 类。 
            </P>
            <P>java.util 这 个 类 包 含 一 ?copy; 程 序 的 同 步 类,它 包 含Date,Dictionary类等。 
            </P>
            <H2 align=center>3.10 异 常</H2>
            <P>当 在Java程 序 中 发 生 一 个 错 误 时, 例 如: 一 个 变 元 的 值 非法, 代 码 会 发 现 这 个 错 
            误, 并 引 发 一 个 异 常(exception)。 在缺 省 的 情 况 下, 异 常 会 输 出 一 个 错 误 消 息, 然 
            后 中 止 线 程的 执 行。 但 是, 程 序 自 己 可 以 定 义 异 常 处 理 段(exception handler)来截 
            获(catch)异 常, 并 从 错 误 中 恢 复。 有 一 ?copy; 异 常 是 由Java解释 器 在 运 行 时 刻 引 发 
            的。 实 际 上, 任 何 类 都 可 以 定 义 属 于自 己 的 异 常, 并 使 用throw语 句 引 发 它 们。 一 
            个throw(引 发?copy; 语 句 是 由throw关 键 字 和 一 个 对 象 构 成。 按 常 规, 该 对 象 应该 
            是Exception 类 的 实 例 或 其 子 类 的 实 例。throw语 句 会 引 起 执行 转 向 相 应 的 异 常 处 理 
            段。 当 一 个throw语 句 执 行 时, 它 下面 的 所 有 代 码 不 再 执 行 了, 它 所 在 的 方 法 也 不 再 
            返 回 值。下 面 的 例 子 将 演 示 如 何 创 建 一 个Exception的 子 类, 然 后 引 发一 个 异 常。 
            class MyException extends Exception { } class MyClass { void oops() 
            { if ( /* 不 出 现 错 误 */) { … } else { /* 出 错 */ </P>
            <P>} else { /* 出 错 */ throw new MyException( ); } } } 为 了 定 义 一个 异 常 
            处 理 段, 程 序 必 须 用try语 句 把 可 能 产 生 异 常 的 代 码成 组。 在try语 句 后 面 跟 上 一 个 或 
            多 个catch(截 获?copy; 语 句,每 个 异 常 对 应 一 个catch语 句。 每 个catch语 句 中 包 含 着 
            异 常 处理 段。 例 如: try { p.a=10; } catch ( NullPointerException e) { 
            println(“p was null”); } catch ( Exception e) { println (“other 
            errors occured”); } catch ( Object obj) { println(“Who threw that 
            object?”); } catch语句 和 一 个 方 法 定 义 类 似, 只 不 过 该 方 法 只 有 一 个 参 数, 且无 
            返 回 类 型。 参 数 可 以 是 一 个 类 或 一 个 界 面。 当 一 个 异 常发 生 时, 嵌 套 的try/catch语 
            句 会 寻 找 出 与 该 异 常 类 相 匹 配 的参 数。 如 果 一 个 参 数 和 指 定 异 常 匹 配 则: * 该 参 数 
            和 指 定的 异 常 是 同 一 个 类, 或 * 该 参 数 是 指 定 异 常 的 子 类, 或 * 如 果 参 数 是 一 个 界 
            面, 指 定 异 常 类 实 现 了 这 个 界 面。 第 一个 参 数 和 异 常 匹 配 的try/catch语 句, 则 与 其 
            匹 配 的catch语 句执 行。 在catch语 句 执 行 完 后, 程 序 的 执 行 被 恢 复。 但 已 不 可能 恢 复 到 
            异 常 发 生 处 再 次 执 行。 例 如: print ( "now"); try { print ("is"); throw 
            new MyException( ); print ("a"); } catch (MyException e) { print 
            ("the "); } print ("time\n"); 打 印 为“now is the time”。 正 如 这 个 例 子 所 
            示, 异 常 应 该 主要 用 于 错 误 处 理, 若 用 于 其 它 方 面 会 使 代 码 晦 涩 难 ?reg;。异 常 处 理 
            段 是 可 以 嵌 套 的, 允 许 异 常 处 理 可 以 发 生 在 多个 地 方。 嵌 套 异 常 处 理 通 常 用 于 当 第 
            一 个 处 理 程 序 无 法完 全 从 错 误 中 恢 复 过 来 的 时 候, 而 不 得 不 执 行 一 ?copy; 清除 代 
            码。 为 了 把 异 常 处 理 控 制 传 递 给 更 高 层 的 处 理 段, 可以 再 一 次 对 截 获 对 象 实 
            ?copy;throw操 作。 注 要 再 次 实 ?copy;throw异常 的 方 法,throw语 句 执 行 完 后, 会 终 
            止 执 行。 try { f. open ( ); } catch(Exception e) { f. close( ); throw 
            e; } </P>
            <P>定 局 语 句 finally(定 局?copy; 语 句 是 用 于 保 证 无 论 在 异 常是 否 发 生 的 情 况 下, 
            某 ?copy; 代 码 被 执 行。 下 例 说 明finally语句 的 用 法: try { //做 某 ?copy; 动 作; 
            } finally { //此 后 清 除; } 和 以 下 代 码 类 似 try { //做 某 ?copy; 动 作 } 
            catch (Object e) { //此 后 清 除; throw e; } </P>
            <P>} //此 后 清 除; 即 使try块 中 包 含return,break,continue,throw语句,finally语 
            句 也 会 被 执 行。 例 如: 下 面 的 代 码“finally” 总是 被 输 出, 而“aftertry” 仅 在a!=10时 
            被 输 出。 try { if (a==10) { return ; } } finally { print 
            ("finally\n"); } print ("after try \n"); </P>
            <P>运 行 时 刻 异 常 本 节 列 出 的 清 单 是Java解 释 器 引 发 的 各 种异 常。 当 运 行 时 刻 发 现 
            各 种 错 误, 由 解 释 器 引 发 异 常。 </P>
            <P>ArithmeticException 如 果 程 序 试 图 除0, 或 用0取 模, 会 产 
            生ArithmeticException(算术 异 常?copy;, 其 它 算 术 操 作 不 会 产 生 异 常。 有 关Java如 
            何处 理 其 它 算 术 错 误 的 信 息, 见“ 整 数 运 算 符” 和“浮点 运 算符” 两 节。 例 如: 下 面 的 代 码 
            将 会 引 发ArithmeticException异 常: class Arith { public static void main 
            (String args [ ] ) { int j = 0; j = j/j; } } </P>
            <P>NullPointerException 当 程 序 试 图 访 问 一 个 空 对 象 中 的 变 量或 方 法, 或 一 个 
            空 数 组 中 的 元 素 时 则 引 发 NullPointerException(空指 针 异 常?copy;。 例 如, 访 问 
            长 度 为0的 数 组a[0]。 有 以 下 类声 明, 运 行 时 会 引 发NullPointerException异 常: 
            class Null { public static void main(String args [ ]) { String o = 
            null; int a [ ] = null; o.length( ); a[0] = 0; } } 有 趣 的 是, 如 果 我 们 
            引 发 一 个 空 对象, 也 会 产 一NullPointerException异 常。 </P>
            <P>IncompatibleClassChangeException 当 一 个 类 的 定 义 被 改 变, 而引 用 该 类 的 
            其 它 类 没 有 被 重 新 编 译 时, 会 产 生 这 一 异 常。有 四 种 类 更 改 会 导 致 运 行 时 刻 引 
            发IncompatibleClassChangException异常。 * 一 个 类 中 的 变 量 声 明 由static变 成 
            非static, 而 其 它 访问 该 类 这 一 变 量 的 类 没 有 被 重 新 编 译。 * 一 个 类 中 的 变 量声 明 
            由 非static变 成static, 而 其 它 访 问 该 类 这 一 变 量 的 类 没有 被 重 新 编 译。 * 类 中 声 
            明 的 某 个 域 被 删 除, 而 其 它 访 问该 域 的 类 没 有 被 重 新 编 译。 * 类 中 声 明 的 某 个 方 法 
            被 删 除,而 其 它 访 问 该 方 法 的 类 没 有 被 重 新 编 译。 </P>
            <P>ClassCastException 如 果 试 图 把 对 象o强 制 成Class C, 而o既 不 是Class C的 实 
            例, 也 不 是Class C子 类 的 实 例, 这 时 便 会 产 生ClassCastException。 class 
            ClassCast { public static void main (String args [ ] ) { Object o = 
            new Object( ); String s = (string) o; s.length( ); } } </P>
            <P>} </P>
            <P>NagativeArraySizeException 如 果 一 个 数 组 的 长 度 是 负 数, 则会 引 
            发NagativeArraySizeException(数 组 负 下 标?copy; 异 常。 例 如下 面 类 定 义 的 代 码 
            在 运 行 时 引 发 这 一 异 常: class NegArray { public static void main(String 
            args [ ]) { int a [ ] = new int [-1]; a[0] = 0; } } </P>
            <P>OutOfMemoryException 当 系 统 无 法 再 向 应 用 程 序 提 ?copy; 内存 时, 会 引 
            发OutOfMemoryException(内 存 溢 出?copy; 异 常。 这 种异 常 只 能 出 现 在 创 建 新 对 象 
            的 时 候, 即new被 调 用 的 时 候。例 如, 下 面 一 段 代 码 在 运 行 时 刻 会 引 
            发OutOfMemoryException异常: class Link { int a [ ] = new int [1000000]; 
            Link l; } Class OutOfMem { public static void main(String args [ ]) 
            { </P>
            <P>public static void main(String args [ ]) { Link root = new link( 
            ); Link cur = root; while (true) { cur.l = new Link( ); cur = cur.l; 
            } } } </P>
            <P>NoClassDefFoundException 如 果 一 个 类 被 引 用, 但 在 运 行 时 刻,系 统 没 有 找 到 
            被 引 用 的 类, 这 时 会 引 发 NoClassDefFoundException(未找 到 类 定 义?copy; 异 常。 
            例 如,NoClass类 的 声 明 如 下: class NoClass { public static void 
            main(String args [ ]) { C c = new C ( ); } } 当NoClass运行 时, 如 果 解 释 器 
            找 不 到C类, 则 会 产 生NoClassDefFoundException。注 意, 在NoClass被 编 译 时C类 一 定 
            要 存 在。 </P>
            <P>IncompatibleType Exception 如 果 试 图 为 一 界 面 作 实 例, 则 会引 
            发IncompatibleTypeException(类 型 不 兼 容?copy; 异 常。 例 如, 下面 的 代 码 会 引 发 
            一 个IncompatibleTypeException。 Interface I { } class IncompType { 
            public static void main(String args [ ]) { I r = (I) new ("I"); } } 
            </P>
            <P>ArrayIndexOutOfBoundsException 试 图 访 问 数 组 中 的 一 个 非 法 元素 时, 会 引 
            发ArrayIndexOutOfBoundsException(数 组 索 引 越 界?copy; 异 常。 例 如: Class 
            ArrayOut { public static void main(String args [ ]) { int a [ ]=new 
            int[0]; a[0]=0; } } </P>
            <P>public static void main(String args [ ]) { int a [ ]=new int[0]; 
            a[0]=0; } } UnsatisfiedLinkException 如 果 一 个 方 法 被 声 明 为 本 机, 但 该方 法 
            在 运 行 时 刻 却 不 能 连 接 到 一 个 例 程 体 上 去 时, 会 产生 
            UnsatisfiedLinkException(无 法 连 接?copy; 异 常。 例 如: Class NoLink { 
            static native void foo( ); public static void main(String args [ ]) 
            { foo( ); } } </P>
            <P>InternalException InternalException(内 部?copy; 异 常 是 不 能 被引 发 的。 只 
            有 在 运 行 失 败 作 一 致 性 检 查 时, 才 会 引 发 这 个异 常。 </P>
            <H2 align=center>本 章 小 结 </H2>
            <P>1. Java语 言 的 基 本 结 构 象C/C++。 2. Java语 言 的 源 程 序 代 码由 一 个 或 多 个 编 
            译 单 元(compilation unit)组 成。 </P></TD>
        <TR>
        <TR>
          <TD bgColor=#f0f0f0 borderColor=#ffffff class=t1 noWrap 
            width="50%"><IMG height=12 src="yyrm3.files/yellow_dot.gif" 
            width=12><A 
            href="http://www.chinajavaworld.net/doc/yyrm/yyrm2.html">上一章</A> </TD>
          <TD bgColor=#f0f0f0 borderColor=#ffffff class=t1 noWrap 
            width="50%"><IMG height=12 src="yyrm3.files/blue_dot.gif" 
            width=12><A 
            href="http://www.chinajavaworld.net/doc/yyrm/yyrm4.html">下一章</A> </TD>
        <TR></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!--end first table --><!--  start foot -->
<SCRIPT src="yyrm3.files/foot1.js"></SCRIPT>

<SCRIPT src="yyrm3.files/adsindex.js"></SCRIPT>

<SCRIPT src="yyrm3.files/foot2.js"></SCRIPT>
<!--  end foot --></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -