以下是WSO2 SAMLSSORelyingPartyObject
包中org.wso2.carbon.hostobjects.sso
的代码段。
if (argLength != 1 || !(args[0] instanceof String)) {
String errorMsg = "Invalid argument. SAML response is missing.";
log.error(errorMsg);
throw new ScriptException(errorMsg);
}
当我调试这个时,我看到即使这个if表达式求值为false,ScriptException也会执行。有人对此有解释吗?
修改
原因是我在eclipse IDE中调试了错误的jar。服务器jar版本不同于我正在调试的jar版本。即使IDE显示调试是在那一行。实际调试是在if块之外
答案 0 :(得分:2)
你必须误解你在调试中看到的内容。如果if()中的完整逻辑表达式求值为false,则显示的括号内的代码将不会执行。也许异常是从其他地方引发的,或者完整的逻辑表达式实际上被评估为true。