如果我有以下代码:
try {
//some offensive code
} catch (Exception e) {
String type = //get type of e
Assert.fail(type + " thrown.");
}
有没有办法获取异常的类型以便输出:
NullReferenceException thrown.
InvalidOperationException thrown.
OutOfMemoryException thrown.
等等?我知道我可以使用 instanceOf() 来切换不同的类型,但这假设我期望的是特定类型。
FWIW,我知道这个特定的代码块很糟糕并且违反了许多 best practices由 Eric Lippert 建议。我只是好奇是否有一种方法可以在运行时确定异常类型。
最佳答案
您可以调用e.getClass().getName()
获取类名。
getName()
返回包含包的名称,例如java.lang.OutOfMemoryError
.
getSimpleName()
只返回一个类名,例如OutOfMemoryError
。
请参阅 Class object 的 javadoc查看您可以获得的所有信息。
关于java - 查找异常类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17031678/