包含java异常的方法

问题描述 投票:-3回答:2

我正在尝试查看抛出的异常是否包含特定的单词,如下面的代码中所示,但我的IDE表示'contains()'方法未定义为Exception类型。我该怎么办?

public static void main(String[] args) throws Exception {
  try {
     // blah blah
  } catch (Exception z) {
     if (z.contains("UnknownHostException")) {
       System.out.print("Unknown Host");
     }
     // blah blah
  }
}
java exception
2个回答
3
投票

我想您正在尝试检查异常消息:

z.getMessage().contains("UnknownHostException")

但一般来说,您直接指定要捕获的异常类型。像这样的东西:

try {
    // some code
} catch (UnknownHostException e) {
    System.out.print("Unknown Host");
} catch (Exception other) {
    // other exceptions go here
}

this,尤其是The catch Blocks


2
投票
z.getMessage().contains(...)

但是,如果您只是检查异常的类型,请不要这样做:直接捕获UnknownHostException

} catch (UnknownHostException z) {

为了使您不会被例外的消息混淆,例如:

I am not an UnknownHostException.

你应该很少捕获Exception(只有当你调用的方法抛出Exception;然后,方法应该很少抛出Exception,除非它们是框架方法)。

© www.soinside.com 2019 - 2024. All rights reserved.