java中是不是在方法声明中抛出了异常就无法在方法体捕捉异常?

 我来答
无野楼升域醉0t
2018-12-18 · TA获得超过8552个赞
知道小有建树答主
回答量:1498
采纳率:88%
帮助的人:501万
展开全部

声明了抛出异常就可以不去try throw Exception的方法 

但是 仍然可以捕捉到,一般会处理一下让后将异常继续throw 出去!

	public static void throwE() throws Exception{

}
public static void catchE() throws Exception {
throwE();
try {
throwE();
} catch (Exception e) {
throw e;
}
}
microroom
科技发烧友

2018-12-18 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1603万
展开全部
声明抛出某种异常的作用是提醒方法的使用者,此方法会抛出某种异常,你要么捕获它,要么将它重新抛出,并不限定方法的定义者在此方法的方法体中不能再捕获这种异常。
追答
//举例说明
public class Test {
public static void main(String[] args) {
int id=1;

while(id<5)
{
try {
switch(id) {
case 1:
f1();
break;
case 2:
f2();
break;
case 3:
f3();
break;
case 4:
f4();
break;
}
}
catch(MyException e) {
System.out.println(e.getMessage());
}
finally {
id++;
System.out.println();
}
}
}
static void f1() throws MyException {
System.out.println("f1根本不发生异常");
}
static void f2() throws MyException {
System.out.println("f2抛出一个异常,自己不捕获");
throw new MyException("异常来自f2,f2自己不捕获");
}
static void f3() throws MyException {
System.out.println("f3抛出一个异常,自己捕获");
try {
throw new MyException("异常来自f3,由f3自己捕获");
}
catch(MyException e) {
System.out.println(e.getMessage());
}
}
static void f4() throws MyException {
System.out.println("f4抛出一个异常,自己捕获后,再抛出");
try {
throw new MyException("异常来自f3,由f3自己捕获后,再抛出");
}
catch(MyException e) {
System.out.println(e.getMessage());
throw e;
}
}
}

class MyException extends Exception
{
MyException(String msg)
{
super(msg);
}
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式