java - 查找异常类型

标签 java exception

如果我有以下代码:

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/

相关文章:

java - Android编程裁剪背景图片

java - VM 初始化期间发生错误 java.lang.UnsatisfiedLinkError

java - 如何在另一个 Activity 中调用一个 Activity 的对象?

java - SpringBoot 当文件上传大小限制超过获取 MultipartException 而不是 MaxUploadSizeExceededException

java.lang.ClassNotFoundException : org. glassfish.jersey.internal.RuntimeDelegateImpl ,抛出 BadRequestException 时

java - 为什么Java中可以抛出null?

java - BlueJ中的for循环输入(无限循环)

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

java - 异常发现得太早

java - jdbc连接socketexception错误