测试一个方法,如果它在不调用它的情况下抛出异常

Eng*_*uad 3 java exception

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

例如:

public static boolean isAllowed(SomeObject obj)
{
    try
    {
        myMethod(obj);
        return true;
    }
    catch(Exception ex)
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是上面的方法会执行MyMethod(),我怎么能在java中实现这个呢?

编辑:

实际上,我想这样做来验证文件名.请参阅:在Windows上验证文件名

ste*_*fan 6

正如其他人所说,通常不可能判断是否会根据输入抛出异常而不实际计算它.Java正在完成,因此可以简化为暂停问题.但是,您可以找到方法在运行时可以抛出的所有异常:

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