请问一哈,异常中“throws”和“throw”有哈子区别哦?? RT,感谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 throw 是个“动词”,紧接在try语句块之后。而throws 是“名词” ,用在函数方法名后function A () throws Exception e {}两者效果一样,均是处理异常的问题 throws是用来声明的, 加在方法声明的后面, 后面跟一个异常类的名字, 表示一般性动作而不是特指某一个动作.throw用来抛出实际的异常, 后面要跟一个异常对象(实例), 是一个实际的语句. 有 throw 的函数必须要声明 throws反过来就不是 我想问一下这个的处理次序:public class NeverCaught { static void f() { throw new RuntimeException("From f()"); } static void g() { try { f(); } catch(RuntimeException e) { e.printStackTrace(); throw e; } finally { System.out.println("异常去死吧!"); } } public static void main(String[] args) { g(); }}谢谢了哈!!! 执行g()调用f()f抛异常g()catch f抛出的异常,打印异常堆栈,又抛出该异常调用finally,打印 “异常去死吧”程序结束 使用throws是来说明,当前的函数会抛出一个异常。在一般的情况下,你调用的一些函数会抛出一些异常。但是你又不想在当前的context中去处理它,就可以声明该函数会抛出该异常,这样你就不用去try-catch它了。当出现该异常该函数会抛出这个异常,让上一层的函数去处理。以我的理解,以下的处理意义不大:)public static h() throws{ try { a.g(); } catch(Exception e) { throw e; }}因为你没有对这个异常处理,而是简单的抛出了。而单纯的声明public static h() throws{ a.g();}也会抛出这个异常 Thread.currentThread().getContextClassLoader().loadClass()和Class.forName()返回的Class对象会有啥区别没?还有关于反射的安全 在线求java项目结构组织图!!!急!!! J2SE工程的部署 请问谁有VE的教程 java 加法器编译有问题。可以帮我调试调试嘛!!?? 基础问题 请教理解一个错误的程序代码?(升序显示一维数组的元素) 求教~ 在那儿有jbuilder7的下载呀 变量的自增问题 Frame类的继承问题 java,常用的开发工具,可视化强
而throws 是“名词” ,用在函数方法名后function A () throws Exception e {}两者效果一样,均是处理异常的问题
反过来就不是
public class NeverCaught {
static void f() {
throw new RuntimeException("From f()");
}
static void g() {
try
{
f();
}
catch(RuntimeException e)
{
e.printStackTrace();
throw e;
}
finally
{
System.out.println("异常去死吧!");
}
}
public static void main(String[] args) {
g();
}
}
谢谢了哈!!!
调用f()
f抛异常
g()catch f抛出的异常,打印异常堆栈,又抛出该异常
调用finally,打印 “异常去死吧”程序结束
在一般的情况下,你调用的一些函数会抛出一些异常。但是你又不想在当前的context中去处理它,就可以声明该函数会抛出该异常,这样你就不用去try-catch它了。当出现该异常该函数会抛出这个异常,让上一层的函数去处理。
以我的理解,以下的处理意义不大:)
public static h() throws
{
try
{
a.g();
}
catch(Exception e)
{
throw e;
}
}
因为你没有对这个异常处理,而是简单的抛出了。
而单纯的声明
public static h() throws
{
a.g();
}
也会抛出这个异常