包含java异常的方法

时间:2017-12-16 14:56:04

标签: java exception

我正在尝试查看抛出的异常是否包含特定的单词,如下面的代码中所示,但我的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
  }
}

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

z.getMessage().contains(...)

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

} catch (UnknownHostException z) {

为了让您不会被例外情况的异常所困惑,例如:

I am not an UnknownHostException.

您应该很少捕获Exception(仅当您正在调用的方法抛出 Exception时;然后,方法应该很少抛出Exception ,除非它们是框架方法)。