捕获连接超时和页面未找到异常?
Catch connection timeout and page not found exception?
我正在使用第三方 api 在 spring 中获取用户身份验证。
我需要捕获尝试连接到 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,我改不了那个方法。而我需要捕获这些异常并给用户适当的响应。
如果不查看 hasAccess()
的实现就无法判断这是否足够,因为那是将抛出错误的函数。
但是,如果你真的需要捕获这个异常,你总是可以使用
try {
if (hasAccess(userName)){}
} catch (Exception e) {
//caught
}
这并不总是好的做法,因为 Exception 会捕获每个异常,但如果您正在寻找一个,它是一个解决方案。
hasAccess(String) 是否定义了任何 throws 语句?
是否定义抛出 IOException?
您是否可以访问该方法的源代码?如果你这样做了,那么你可以去检查他们是否正在处理任何抛出的异常,或者他们是否正在重新抛出任何运行时异常。
为了安全起见,你应该捕获运行时异常,因为错误对你来说是不可预测的,所以你可以优雅地处理错误。
我正在使用第三方 api 在 spring 中获取用户身份验证。 我需要捕获尝试连接到 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,我改不了那个方法。而我需要捕获这些异常并给用户适当的响应。
如果不查看 hasAccess()
的实现就无法判断这是否足够,因为那是将抛出错误的函数。
但是,如果你真的需要捕获这个异常,你总是可以使用
try {
if (hasAccess(userName)){}
} catch (Exception e) {
//caught
}
这并不总是好的做法,因为 Exception 会捕获每个异常,但如果您正在寻找一个,它是一个解决方案。
hasAccess(String) 是否定义了任何 throws 语句?
是否定义抛出 IOException?
您是否可以访问该方法的源代码?如果你这样做了,那么你可以去检查他们是否正在处理任何抛出的异常,或者他们是否正在重新抛出任何运行时异常。
为了安全起见,你应该捕获运行时异常,因为错误对你来说是不可预测的,所以你可以优雅地处理错误。