gpt4 book ai didi

java - 如何检查 Throwable 是否是无效电子邮件地址的结果

转载 作者:行者123 更新时间:2023-11-30 09:34:10 32 4
gpt4 key购买 nike

注意:我当前的解决方案有效(我认为)。我只是想确保我没有遗漏任何东西。

我的问题:我想知道如何检查异常是否是由无效的电子邮件地址引起的。使用 Java 邮件。

目前我正在检查 SMTPAddressFailedExceptiongetAddress()AddressExceptiongetRef() .

这是我目前进行检查的方法。 我错过了什么吗?

/**
* Checks to find an invalid address error in the given exception. Any found will be added to the ErrorController's
* list of invalid addresses. If an exception is found which does not contain an invalid address, returns false.
*
* @param exception the MessagingException which could possibly hold the invalid address
* @return if the exception is not an invalid address exception.
*/
public boolean handleEmailException(Throwable exception) {
String invalidAddress;
do {
if (exception instanceof SMTPAddressFailedException) {
SMTPAddressFailedException smtpAddressFailedException = (SMTPAddressFailedException) exception;
InternetAddress internetAddress = smtpAddressFailedException.getAddress();
invalidAddress = internetAddress.getAddress();
} else if (exception instanceof AddressException) {
AddressException addressException = (AddressException) exception;
invalidAddress = addressException.getRef();
}
//Here is where I might do a few more else ifs if there are any other applicable exceptions.
else {
return false;
}
if (invalidAddress != null) {
//Here's where I do something with the invalid address.
}
exception = exception.getCause();
} while (exception != null);
return true;
}

注意:如果您好奇(或者它有帮助),我使用 Java Helper Library发送电子邮件(参见 line ),这就是最初引发错误的地方。

最佳答案

您通常不需要抛出异常;这就是为什么你可以有多个 catch block :

try {
// code that might throw AddressException
} catch (SMTPAddressFailedException ex) {
// Catch subclass of AddressException first
// ...
} catch (AddressException ex) {
// ...
}

如果担心嵌套异常,可以使用Guava的Throwables.getRootCause

关于java - 如何检查 Throwable 是否是无效电子邮件地址的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11866717/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com