throws 和 throw 之间的区别 什么时候用throws 什么时候用throw 。 我的理解是 throw 是抛出某个具体的异常类对象 而throws 是抛出可能会发生异常的异常类 . 不知道这样理解 错在哪里 .请各位帮帮我的. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 throw 是在函数的调用处抛出一个异常,然而throws是再此处不对这个异常进行处理,而是交给函数的调用处去处理, void m(int i) throws Exception{ if(i == 0) throw new ArithmeticException("除零错误!") System.out.println("程序正常!");}这样写对吗. throws 和throw 出现有先后顺序吗 还是没有理解各自的概念.. 使用的位置不一样 一般在 函数头处用throws 比如IOETest()throws IOException 你这样写的编译肯定是没有问题了,但是你在用m函数的时候还是要对异常进行处理的,弄明白不?就像这样一样public class M{ public static void m(int i) throws Exception{ //因为这个 if(i == 0) throw new ArithmeticException("除零错误!"); System.out.println("程序正常!"); } public static void main(String[] args) { try{ //必须有这个 m(2); }catch (Exception e){ System.out.println(e); } }}; throws 放在方法名后,throw放在方法体里,就是放得位置不一样 throw是抛出一个具体的异常对象,一般在方法内部,而throws是将捕获的异常抛出去在别的地方处理,一般在方法参数后面 throw抛用户自定义异常,throws抛jvm认为的异常类/////java处理异常方式///////////////////////////////在java代码中如果发生异常的话,jvm会抛出异常对象,导致程序代码中断,这个时候jvm在做的操作就是:创建异常对象,然后抛出,比如:int i= 1;int j = 0;int res = 0;res = i/j;//除0错误System.out.println(res);这5句代码运行到第四句会中断,因为jvm抛出了异常////throw的作用/////////////////////////////////////////手动抛出异常但是有时候有些错误在jvm看来不是错误,比如说int age = 0;age = -100;System.out.println(age);很正常的整形变量赋值,但是在我们眼中看来就不正常,谁的年龄会是负的呢。所以我们需要自己手动引发异常,这就是throw的作用int age = 0;age = -100;if(age<0){Exception e = new Exception();//创建异常对象throw e;//抛出异常}System.out.println(age);////throws的作用///////////////////////////////////声明方法可能回避的异常有异常被抛出了,就要做处理,所以java中有try-catch可是有时候一个方法中产生了异常,但是不知道该怎么处理它,那么就放着不管,当有异常抛出时会中断该方法,而异常被抛到这个方法的调用者那里。这个有点像下属处理不了的问题就交到上司手里一样,这种情况称为回避异常但是这使得调用这个方法就有了危险,因为谁也不知道这个方法什么时候会丢一个什么样的异常给调用者,所以在定义方法时,就需要在方法头部分使用throws来声明这个方法可能回避的异常void fun()throws IOException,SQLException{...}这表示 fun方法可能会丢两个异常出来,那么在调用fun的时候就会做好准备,比如可以这样try{fun();}catch(IOException e){}catch(SQLException e){} 你可以这么理解throws是用来声明某个方法要抛的异常,以提醒调用该方法的其它方法,对它进行异常捕获throw 就是用来引发异常的public void method() throws MyException(){ // 其它方法注意,当你们调用我时,我可能会抛XXX异常 if(xx){ xxxxxxx }else{ throw new MyException();//引发异常,抛异常 }} 很显然,17楼的 throws MyException()否定了10楼的“throws抛jvm认为的异常类”一说。 throws 声明异常哪个调用,哪个处理,throw抛出异常不处理。 throws是用在函数体,一般比较大的概括,而throw一般是在函数内针对比较具体问题 如果一个方法中抛出了异常.希望调用者捕获异常.那么如何通知调用者勒?就是通过throws声明某个方法可能抛出各种异常.throw 用来自行抛出异常.抛出异常的原因在于:当前环境无法解决参数问题,因此在方法体内通过throw抛出异常,把问题交给调用者解决...书上说的 .... 你在程序里面throws看看?一个是定义,一个是具体的抛出行为。 throws 放在方法名后,throw放在方法体里,就是放得位置不一样,多测试一下了 throws 用来声明有这个异常会抛出,有时候也用在不处理当前方法会出现的异常,而把这些异常转交给调用这个方法的方法来处理。throw 用于实际抛出异常这个动作。例子:throws: public String search() throws UnsupportedEncodingException { service.search(getPagination(), sender, reciever, fromDate, toDate, fileName); return INPUT; }throw: if (xxxx) throw Exception("抛出一个异常"); throws语句是在方法的声明中使用来抛出异常,而throw语句是在方法体内使用抛出异常。 throws 表示“会抛出的异常”,可以理解为一个名词,只能写在方法原型的中throw 表示“抛出异常”,可以理解为一个动词,表示方法体中需要向外扔的异常 throw是一种命令抛出异常对象,而throws是声明方法可以抛出哪些异常 throw有点像英文的祈使句,在具体的方法体中命令程序throw某个异常而throws像是一个名词,这个方法“会抛出的异常",也就是exceptions this method throws,这个是出现在方法原型中的。 throws好比国务院发言人,或者国防部发言人,他们只是做一个声明中国可能会使用核武器,但是只在以下情况下才使用核武器....throw是按动和按钮,真的扔了一个核弹/** * 这个方法干了一点事情。 * @throws NuclearException 如果对方是核武国家,并且对方首先使用核武器的话 */public void foo() throws NuclearException { // 声明,我们可能会,具体情况,参考上面的javadoc if (underAttack && enemy.hasNuclearWeapons() && attackEvent.isNuclearAttack()) { throw new NuclearException(); // 按下了核按钮 } // ... 正常处理} throws在方法声明的时候使用,告诉JVM这个方法可能会抛出这些异常,需要进行异常的拦截。而throw是在方法中显示的抛出异常。 throws放在方法名后面用来声明改程序会产生哪些异常,throw是放在方法体中用来书写某个异常的处理方法! 网络编程问题 java 中多个按钮怎么实现监听不用e.getSource()方法; Java里Object类下的registerNatives()方法是干啥的? 菜鸟问题,在线等,马上送分! 《JAVA编程思想(第二版)》中的一道习题 新到一颗星,谢谢各位排场,请进请进^_^ 很简单的问题,关于String的 既然在定义实例变量的时候可以初始化实例变量的值,那还要构造函数干吗?谢谢! 请问java里的链表是怎么做的? applet中可以使用swing来进行图形设计吗? 效率问题 请问这个乱码肿木办嘞
{
if(i == 0) throw new ArithmeticException("除零错误!")
System.out.println("程序正常!");
}
这样写对吗. throws 和throw 出现有先后顺序吗 还是没有理解各自的概念..
public class M
{
public static void m(int i) throws Exception{ //因为这个
if(i == 0) throw new ArithmeticException("除零错误!");
System.out.println("程序正常!");
}
public static void main(String[] args)
{
try{ //必须有这个
m(2);
}catch (Exception e){
System.out.println(e);
}
}
};
/////java处理异常方式///////////////////////////////
在java代码中如果发生异常的话,jvm会抛出异常对象,导致程序代码中断,这个时候jvm在做的操作就是:创建异常对象,然后抛出,比如:int i= 1;
int j = 0;
int res = 0;
res = i/j;//除0错误
System.out.println(res);这5句代码运行到第四句会中断,因为jvm抛出了异常////throw的作用/////////////////////////////////////////
手动抛出异常但是有时候有些错误在jvm看来不是错误,比如说
int age = 0;
age = -100;
System.out.println(age);
很正常的整形变量赋值,但是在我们眼中看来就不正常,谁的年龄会是负的呢。
所以我们需要自己手动引发异常,这就是throw的作用
int age = 0;
age = -100;
if(age<0)
{
Exception e = new Exception();//创建异常对象
throw e;//抛出异常
}
System.out.println(age);////throws的作用///////////////////////////////////
声明方法可能回避的异常有异常被抛出了,就要做处理,所以java中有try-catch
可是有时候一个方法中产生了异常,但是不知道该怎么处理它,那么就放着不管,当有异常抛出时会中断该方法,而异常被抛到这个方法的调用者那里。这个有点像下属处理不了的问题就交到上司手里一样,这种情况称为回避异常
但是这使得调用这个方法就有了危险,因为谁也不知道这个方法什么时候会丢一个什么样的异常给调用者,所以在定义方法时,就需要在方法头部分使用throws来声明这个方法可能回避的异常
void fun()throws IOException,SQLException
{
...
}
这表示 fun方法可能会丢两个异常出来,那么在调用fun的时候就会做好准备,比如可以这样
try
{
fun();
}catch(IOException e)
{
}catch(SQLException e)
{
}
throws是用来声明某个方法要抛的异常,以提醒调用该方法的其它方法,对它进行异常捕获
throw 就是用来引发异常的public void method() throws MyException(){ // 其它方法注意,当你们调用我时,我可能会抛XXX异常
if(xx){
xxxxxxx
}else{
throw new MyException();//引发异常,抛异常
}
}
throw 用来自行抛出异常.抛出异常的原因在于:当前环境无法解决参数问题,因此在方法体内通过throw抛出异常,把问题交给调用者解决...书上说的 ....
throw 用于实际抛出异常这个动作。
例子:
throws: public String search() throws UnsupportedEncodingException {
service.search(getPagination(), sender, reciever, fromDate, toDate, fileName);
return INPUT;
}
throw: if (xxxx) throw Exception("抛出一个异常");
中国可能会使用核武器,但是只在以下情况下才使用核武器....throw是按动和按钮,真的扔了一个核弹
/**
* 这个方法干了一点事情。
* @throws NuclearException 如果对方是核武国家,并且对方首先使用核武器的话
*/
public void foo() throws NuclearException { // 声明,我们可能会,具体情况,参考上面的javadoc
if (underAttack && enemy.hasNuclearWeapons() && attackEvent.isNuclearAttack()) {
throw new NuclearException(); // 按下了核按钮
}
// ... 正常处理
}
而throw是在方法中显示的抛出异常。