java中是不是在方法声明中抛出了异常就无法在方法体捕捉异常?
展开全部
声明了抛出异常就可以不去try throw Exception的方法
但是 仍然可以捕捉到,一般会处理一下让后将异常继续throw 出去!
public static void throwE() throws Exception{
}
public static void catchE() throws Exception {
throwE();
try {
throwE();
} catch (Exception e) {
throw e;
}
}
展开全部
声明抛出某种异常的作用是提醒方法的使用者,此方法会抛出某种异常,你要么捕获它,要么将它重新抛出,并不限定方法的定义者在此方法的方法体中不能再捕获这种异常。
追答
//举例说明
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询