java - 测试一个方法是否会在不调用它的情况下抛出异常

标签 java exception

如何在不调用给定方法的情况下测试它是否会抛出异常(取决于传递的对象)?

例如:

public static boolean isAllowed(SomeObject obj)
{
    try
    {
        myMethod(obj);
        return true;
    }
    catch(Exception ex)
    {
        return false;
    }
}

但是上面的方法会执行MyMethod(),我该如何在java中实现呢?

编辑:

实际上,我想这样做是为了验证文件名。看到这个:Validate a file name on Windows

最佳答案

正如其他人所说,通常不可能根据输入判断是否会抛出异常而不实际计算它。 Java 是图灵完备的,所以这可以简化为 halting problem .但是,您可以在运行时找到方法可以抛出的所有异常:

try {
    Method myMethod = this.getClass().getMethod("myMethod");
    System.out.println(Arrays.toString(myMethod.getExceptionTypes()));
} catch (NoSuchMethodException e) {}

关于java - 测试一个方法是否会在不调用它的情况下抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6778637/

相关文章:

java - 如何指定正确的返回类型?

asp.net - 如何处理 ASP.NET 中未处理的线程异常?

java - 是否可以在 Java 中禁用检查异常?

java - 在 Java 中声明一个大尺寸的 2d Double 数组

java - 在客户端程序中动态加载类

删除对象数组时出现 C++ 堆异常

java - 如何向位于子类的父类(super class)中的 Jbutton 添加功能?

java - Android中偏好和共享偏好之间的区别

java - 将时间戳转换为字符串而不指定格式

java - RabbitMQ队列问题。消息监听器不消费前两条消息