如何在不调用的情况下测试给定方法是否会抛出异常(取决于传递的对象)?
例如:
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上验证文件名
正如其他人所说,通常不可能判断是否会根据输入抛出异常而不实际计算它.Java正在完成,因此可以简化为暂停问题.但是,您可以找到方法在运行时可以抛出的所有异常:
try {
Method myMethod = this.getClass().getMethod("myMethod");
System.out.println(Arrays.toString(myMethod.getExceptionTypes()));
} catch (NoSuchMethodException e) {}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10377 次 |
| 最近记录: |