java 异常问题

新手中的新手 2013-04-22 01:24:14
最近刚学异常产生疑问:
class weiLingException extends RuntimeException{
weiLingException(String s){
super(s);
}
}
class Text{
void show(int x)throws weiLingException {//这里的throws抛给谁
if(x==0){
throw new weiLingException("分母不能为0");//这里的throw又抛给谁
}
int s =3/x ;
System.out.println(s);
}
}
public class class1 {
public static void main(String[] args) {
Text t = new Text();
t.show(0);
}
}

...全文
118 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bettygonna 2013-04-22
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
你先要理解throw和throws这两个关键字的区别。 throws只是方法的一个申明,并不一定就会抛出异常,只是告诉方法的调用者,这个方法可能会抛出异常。 throw就是抛出异常,抛给上一层的try catch。
上一 层是?那一层对这个概念很模糊
tianma630 2013-04-22
  • 打赏
  • 举报
回复
1、将异常往上抛 比如我们在dao蹭接收到异常 可以通过throws跑到service层 2、抛出一个自定义的异常 可以用try catch 也可以用throws处理
lvzg_005 2013-04-22
  • 打赏
  • 举报
回复
刚好你编写的异常类继承了RuntimeException,在调用show方法的地方不用显示的捕获异常。如果继承了检查性异常,那么需要显示的捕获异常了,不然在编译器就会报错的。
MakeUrChois 2013-04-22
  • 打赏
  • 举报
回复
楼上正解,就例子而言。 抛到了调用show()的地方。如果在main中try catch一下就能捕获到。
rumlee 2013-04-22
  • 打赏
  • 举报
回复
你先要理解throw和throws这两个关键字的区别。 throws只是方法的一个申明,并不一定就会抛出异常,只是告诉方法的调用者,这个方法可能会抛出异常。 throw就是抛出异常,抛给上一层的try catch。
火影之贺 2013-04-22
  • 打赏
  • 举报
回复
throws是申明,告诉调用这个函数的地方要应付这个异常,throws后面的s,英语的时态就是“一般现在时”。 你试试class weiLingException extends Exception就能看到变化了,t.show(0);这里会要捕获对应的异常的,否则会编译出错。 throw只会在执行过程到这一步的时候,抛出一个异常,执行的是对应于throws申明的具体动作。
小xym 2013-04-22
  • 打赏
  • 举报
回复
我的理解就是方法用throws,是表示这个方法就算有异常也不管,等到以后用到这个方法,就捕捉异常显示出来,,throw就是代码中哪里可能出现问题,就用这个抛出异常类:throw new 异常类名(信息)。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧