Driver,DriverManager生成connection的区别?throw,throws的区别? class test throws IOException(){} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 throw语 句 用 来 明 确 地 抛 出 一 个“ 异 常”。 首 先, 你 必 须 得到 一 个Throwable的 实 例 的 控 制 柄, 通 过 参 数 传 到catch子 句, 或者 用new操 作 符 来 创 建 一 个。 下 面 是throw语 句 的 通 常 形 式。 throw ThrowableInstance; 程 序 会 在throw语 句 后 立 即 终 止, 它 后 面 的 语 句 执 行 不 到,然 后 在 包 含 它 的 所 有try块 中 从 里 向 外 寻 找 含 有 与 其 匹 配的catch子 句 的try块。 下 面 是 一 个 含 有throw语 句 的 例 子。 class ThrowDemo { static void demoproc() { try { throw new NullPointerException("de3mo"); } catch(NullPointerException e) { System.out.println("caught inside demoproc"); throw e; } } public static void main(String args[]) { try { demoproc(); } catch(NullPointerException e) { system.out.println("recaught: " + e); } } } throws语 句 throws用 来 标 明 一 个 成 员 函 数 可 能 抛 出 的 各 种“ 异 常”。对 大 多 数Exception子 类 来 说,Java 编 译 器 会 强 迫 你 声 明 在 一个 成 员 函 数 中 抛 出 的“ 异 常” 的 类 型。 如 果“ 异 常” 的 类 型是Error或 RuntimeException, 或 它 们 的 子 类, 这 个 规 则 不 起 作 用,因 为 这 ?copy; 在 程 序 的 正 常 部 分 中 是 不 期 待 出 现 的。 如 果你 想 明 确 地 抛 出 一 个RuntimeException, 你 必 须 用throws语 句 来声 明 它 的 类 型。 这 就 重 新 定 义 了 成 员 函 数 的 定 义 语 法: type method-name(arg-list) throws exception-list { } 下 面 是 一 段 程 序, 它 抛 出 了 一 个“ 异 常”, 但 既 没 有 捕捉 它, 也 没 有 用throws来 声 明。 这 在 编 译 时 将 不 会 通 过。 class ThrowsDemo1 { static void procedure( ) [ System.out.println("inside procedure"); throw new IllegalAccessException("demo"); } public static void main(String args[]) { procedure( ); }} 为 了 让 这 个 例 子 编 译 过 去, 我 们 需 要 声 明 成 员 函 数procedure抛出 了IllegalAccessException, 并 且 在 调 用 它 的 成 员 函 数main里 捕捉 它。 下 面 是 正 确 的 例 子: class ThrowsDemo { static void procedure( ) throws IllegalAccessException { System.out.println("inside procedure"); throw new IllegalAccessException("demo"); } public static void main(String args[]) { try { procedure( ); } catch (IllegalAccessException e) { System.out.println("caught " + e); } }} 下 面 是 输 出 结 果: C:\>java ThrowsDemo inside procedure caught java.lang.IllegalAccessException: demo } panq兄说得对。在下补充一点:throws的应用场合。如果在某个方法中throw了一个异常,但是又不想在该方法中处理的话,就可以再次抛出(throws),让调用它的方法来处理。调用它的方法如果觉得可以处理的话,就catch,否则可以再次抛出(throws),直到有方法处理为止。如果一直到main方法都进行抛出而没有处理的话,编译正确,但运行会产生异常。由此,应当不难看出throw和throws的区别了吧? 有没有回答上一个问题?driver,drivermanager 生成connection的区别? java帮助查api还行,其他的内容很不方便。 多个虚拟机上的程序怎么并发控制 java菜鸟求助! java学习软件 java群 请问new Object() 有什么用处 简单的问题,SWING里怎么实现按钮关闭窗口,在线等 FilterInputStream是不是抽象类? 怎样模拟实现传递基本数据类型的引用 怎么实现代码显示功能呀! 我用这样的方法从ftp站点下载文件,为什么有问题? 在装JBuilder4后第一次运行程序时,弹出来的那一个窗口(即Runtime properties),有兄弟一定要救我!谢谢了。
static void demoproc() {
try {
throw new NullPointerException("de3mo");
} catch(NullPointerException e) {
System.out.println("caught inside demoproc");
throw e;
}
}
public static void main(String args[]) {
try {
demoproc();
} catch(NullPointerException e) {
system.out.println("recaught: " + e);
}
}
} throws语 句
throws用 来 标 明 一 个 成 员 函 数 可 能 抛 出 的 各 种“ 异 常”。对 大 多 数Exception子 类 来 说,Java 编 译 器 会 强 迫 你 声 明 在 一个 成 员 函 数 中 抛 出 的“ 异 常” 的 类 型。 如 果“ 异 常” 的 类 型是Error或 RuntimeException, 或 它 们 的 子 类, 这 个 规 则 不 起 作 用,因 为 这 ?copy; 在 程 序 的 正 常 部 分 中 是 不 期 待 出 现 的。 如 果你 想 明 确 地 抛 出 一 个RuntimeException, 你 必 须 用throws语 句 来声 明 它 的 类 型。 这 就 重 新 定 义 了 成 员 函 数 的 定 义 语 法: type method-name(arg-list) throws exception-list { } 下 面 是 一 段 程 序, 它 抛 出 了 一 个“ 异 常”, 但 既 没 有 捕捉 它, 也 没 有 用throws来 声 明。 这 在 编 译 时 将 不 会 通 过。 class ThrowsDemo1 {
static void procedure( ) [
System.out.println("inside procedure");
throw new IllegalAccessException("demo");
}
public static void main(String args[]) {
procedure( );
}
} 为 了 让 这 个 例 子 编 译 过 去, 我 们 需 要 声 明 成 员 函 数procedure抛出 了IllegalAccessException, 并 且 在 调 用 它 的 成 员 函 数main里 捕捉 它。 下 面 是 正 确 的 例 子: class ThrowsDemo {
static void procedure( ) throws IllegalAccessException {
System.out.println("inside procedure");
throw new IllegalAccessException("demo");
}
public static void main(String args[]) {
try {
procedure( );
} catch (IllegalAccessException e) {
System.out.println("caught " + e);
}
}
} 下 面 是 输 出 结 果: C:\>java ThrowsDemo inside procedure caught java.lang.IllegalAccessException: demo }
在下补充一点:throws的应用场合。如果在某个方法中throw了一个异常,但是又不想在该方法中处理的话,就可以再次抛出(throws),让调用它的方法来处理。调用它的方法如果觉得可以处理的话,就catch,否则可以再次抛出(throws),直到有方法处理为止。如果一直到main方法都进行抛出而没有处理的话,编译正确,但运行会产生异常。
由此,应当不难看出throw和throws的区别了吧?