查找异常类型

时间:2013-06-10 19:51:18

标签: java exception exception-handling

如果我有以下代码:

try {
    //some offensive code     
} catch (Exception e) {
    String type = //get type of e
    Assert.fail(type + " thrown.");
}

有没有办法可以获得Exception的类型,所以我可以输出:

NullReferenceException thrown.
InvalidOperationException thrown.
OutOfMemoryException thrown.

等?我知道我可以使用instanceOf()打开不同的类型,但这假设我期待一个特定的类型。

FWIW,我知道这个特定的代码块非常糟糕,并且违反了Eric Lippert建议的许多best practices。我只是好奇是否有办法在运行时确定异常类型。

1 个答案:

答案 0 :(得分:6)

您可以致电e.getClass().getName()获取课程名称。

getName()返回包含包的名称,例如java.lang.OutOfMemoryError

getSimpleName()只返回一个类名,例如OutOfMemoryError

请参阅Class object的javadoc以查看您可以获得的所有信息。