首页 > 代码库 > java 检查抛出的异常是否是要捕获的检查性异常或运行时异常或错误
java 检查抛出的异常是否是要捕获的检查性异常或运行时异常或错误
/** * Return whether the given throwable is a checked exception: * that is, neither a RuntimeException nor an Error. * @param ex the throwable to check * @return whether the throwable is a checked exception * @see java.lang.Exception * @see java.lang.RuntimeException * @see java.lang.Error */ public static boolean isCheckedException(Throwable ex) { return !(ex instanceof RuntimeException || ex instanceof Error); } /** * Check whether the given exception is compatible with the specified * exception types, as declared in a throws clause. * @param ex the exception to check * @param declaredExceptions the exception types declared in the throws clause * @return whether the given exception is compatible */ //如果ex是RuntimeException或者Error,则兼容,如果ex是declaredExceptions种某个类的子类则是 public static boolean isCompatibleWithThrowsClause(Throwable ex, Class<?>... declaredExceptions) { if (!isCheckedException(ex)) {//如果ex是RuntimeException或者Error,则为true return true; } if (declaredExceptions != null) { for (Class<?> declaredException : declaredExceptions) { if (declaredException.isInstance(ex)) { return true; } } } return false; }
isCompatibleWithThrowsClause这个方法用在什么地方?用在抛出指定类型异常的检查中,比如一个方法如果只有抛出某些异常才需要处理的时候可以调用这个方法
public static void test(){ try { int a = 1 / 0; } catch (Exception e) { if(isCompatibleWithThrowsClause(e, NoSuchFieldException.class)){ //如果是NoSuchFieldException检查性异常才进行处理 //问题是运行时异常和错误也同样要处理 System.out.println("要处理"); } } }
java 检查抛出的异常是否是要捕获的检查性异常或运行时异常或错误
java 检查抛出的异常是否是要捕获的检查性异常或运行时异常或错误
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。