java什么情况下必须用throws抛出异常

如下面的代码去掉throwsMyException就不能编译,可main里的try块已考虑到MyException导常了,它应该能处理这种异常吧,这段代码怎么改能不用th... 如下面的代码去掉throws MyException就不能编译,可main里的try块已考虑到MyException导常了,它应该能处理这种异常吧,这段代码怎么改能不用throws什么情况下必须用throws抛出异常?
=================================================================
class MyException extends Exception {
private int detail;

MyException(int a) {
detail = a;
}

public String toString() {
return "MyException[" + detail + "]";
}
}

class ExceptionDemo {
static void compute(int a) throws MyException{
System.out.println("Called compute(" + a + ")");
if(a > 10)
throw new MyException(a);
System.out.println("Normal exit");
}

public static void main(String args[]) {
try {
compute(1);
compute(20);
} catch (MyException e) {
System.out.println("Caught " + e);
}
}
}
throw new MyException(a); 不算抛了异常吗? a>10时throw抛出异常
改成这样:
class ExceptionDemo {
static void compute(int a){
try{
System.out.println("Called compute(" + a + ")");
if(a > 10)
throw new MyException(a);
System.out.println("Normal exit");
}catch(MyException e){
System.out.println("不抛出自己处理!"+e);
}
}
编译错误:在相应的 try 语句主体中不能抛出异常 MyException
展开
 我来答
jyjiao2007
推荐于2017-12-15 · 超过12用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:32.1万
展开全部
java什么情况下必须用throws抛出异常?
答:在程序中抛出了非RuntimeException异常却没有对其处理(用try catch块处理)的情况下,必须在方法头throws该异常。
shiva1981
2010-07-13 · TA获得超过773个赞
知道小有建树答主
回答量:638
采纳率:0%
帮助的人:759万
展开全部
你是说compute(int a)里面的throws Exception吧
因为在compute(int a)里面你用throw MyException抛出异常
这样的话要么你在方法内部用try块自己处理这个异常,要么就让方法抛出这个异常,让调用这个方法的方法去处理这个异常

你说你删除throws就错了,是因为你既然没有抛出异常,那么就应该自己处理,你没有自己处理,所以就错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thinkpack
2010-07-12 · TA获得超过2842个赞
知道大有可为答主
回答量:2114
采纳率:0%
帮助的人:2075万
展开全部
定义类中方法抛弃异常时就必须捕获或是抛出让下一个捕获。而main是调用了该类的该方法,是处理异常,而去掉方法中的throws,没有抛出异常,main如何处理?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e829334c0
2010-07-12 · TA获得超过473个赞
知道小有建树答主
回答量:1066
采纳率:0%
帮助的人:833万
展开全部
一般是用于另起一个异常块。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式