永远不会在相应的try语句的主体中引发异常

我在Java中进行异常处理时遇到问题,这是我的代码。尝试运行以下行时出现编译器错误:throw new MojException("Bledne

dane");。错误是:

永远不会在相应的try语句的主体中引发MojException异常

这是代码:

public class Test {

public static void main(String[] args) throws MojException {

// TODO Auto-generated method stub

for(int i=1;i<args.length;i++){

try{

Integer.parseInt(args[i-1]);

}

catch(MojException e){

throw new MojException("Bledne dane");

}

try{

WierszTrojkataPascala a = new WierszTrojkataPascala(Integer.parseInt(args[0]));

System.out.println(args[i]+" : "+a.wspolczynnik(Integer.parseInt(args[i])));

}

catch(MojException e){

throw new MojException(args[i]+" "+e.getMessage());

}

}

}

}

这是MojException的代码:

public class MojException extends Exception{

MojException(String s){

super(s);

}

}

谁能帮我这个?

回答:

try语句中的catch块需要 捕获try {}-block 内的代码 抛出的异常(或该异常的超类)。

try {

//do something that throws ExceptionA, e.g.

throw new ExceptionA("I am Exception Alpha!");

}

catch(ExceptionA e) {

//do something to handle the exception, e.g.

System.out.println("Message: " + e.getMessage());

}

您想做的是这样的:

try {

throw new ExceptionB("I am Exception Bravo!");

}

catch(ExceptionA e) {

System.out.println("Message: " + e.getMessage());

}

这将导致编译器错误,因为您的Java知道您正在尝试捕获永远不会发生的异常。因此,您将获得:exception ExceptionA is never

thrown in body of corresponding try statement

以上是 永远不会在相应的try语句的主体中引发异常 的全部内容, 来源链接: utcz.com/qa/415314.html

回到顶部