我正在尝试查看抛出的异常是否包含特定的单词,如下面的代码中所示,但我的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
}
}
答案 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
,除非它们是框架方法)。