我正在使用第三方api在春季获得用户身份验证。 我需要捕获尝试连接到该api时发生的异常,例如连接超时和找不到页面(如果其服务器关闭)。 现在,我正在尝试使用下面的代码来做到这一点。这足以捕获这些异常吗?
public boolean userAuthentication(String userName) {
try {
if(hasAccess(userName)) {
return true;
} else {
return false;
}
} catch (IOException e) {
logger.info("exception occured "+ e);
return false;
}
}
这里hasAccess是第三方api,我无法更改该方法。而我需要捕获这些异常并向用户做出适当的响应。
答案 0 :(得分:1)
如果不查看other
的实现,就无法判断这是否足够,因为那是引发错误的函数。
但是,如果您确实需要捕获此异常,则可以随时使用
hasAccess()
这并非总是好的做法,因为Exception会捕获每个异常,但是如果您正在寻找一个异常,这是一种解决方案。
答案 1 :(得分:0)
hasAccess(String)是否定义任何throws语句?
它是否定义它引发IOException?
您可以访问此方法的源代码吗?如果这样做,则可以去检查它们是否正在处理抛出的任何异常或是否正在重新抛出任何运行时异常。
为了安全起见,您应该捕获运行时异常,因为错误对于您来说是不可预测的,因此您可以优雅地处理错误。