捕获异常类型两次

时间:2014-03-22 10:30:41

标签: java exception-handling try-catch

我们可以在main方法中使用不同的消息捕获两次异常类型吗?我想打印出不同的警告。

实施例

 try {
    // some code
 } catch (NumberFormatException e) {
    System.out.println("Wrong input!"); 
 } catch (NumberFormatException e) {
    System.out.println("No valid number!"); 
 }

4 个答案:

答案 0 :(得分:3)

您无法两次捕获相同的异常类型(如NumberFormatException)。我建议你抓住它一次但是在catch块中,你会打印两条消息。

答案 1 :(得分:0)

你不能两次捕获同样的异常。

您可以做的是在代码中抛出自定义异常,并在需要不同行为时捕获它。

try{
   ...
   throw new YourException(yourMessage);
}catch(YourException e){

}

答案 2 :(得分:0)

据我所知,您希望为您的例外显示正确的消息:

 try {
    // some code
 } catch (NumberFormatException e) {
    System.out.println(e.getMessage()); 
 }

答案 3 :(得分:0)

你不能两次捕获同样的异常。

考虑以下示例,

try {

} catch (FileNotFoundException e) {
    System.err.println("FileNotFoundException: " + e.getMessage());
    throw new SampleException(e);

} catch (IOException e) {
    System.err.println("Caught IOException: " + e.getMessage());
}

下面,

两个处理程序都会打印错误消息。第二个处理程序没有其他功能。通过捕获未被第一个处理程序捕获的任何IOException,它允许程序继续执行。

第一个处理程序除了打印消息外,还会抛出用户定义的异常。