如何从 Playframework 的 MailerClient 中获取抛出的异常
How to get a thrown exception from MailerClient of Playframework
我正在 Play 应用程序中使用 Play-Mailer。我能够将电子邮件发送到正确的电子邮件地址。到目前为止,一切都很好。 - 但是对于 none 现有的电子邮件地址,org.apache.commons.mailer
会抛出异常,但方法 mailerClient.send(email)
本身不会抛出任何异常。 - 有没有办法捕捉任何异常形式 Play-Mailer
?
编辑:
我查看了 Play-Mailer 插件,发现它是用 Scala 编写的。 Scala 没有检查异常的概念。 Scala 直接编译为 JVM 字节码,这就是 "trick" 如何在 Scala 中调用 Java 代码,它会抛出已检查的异常,但您不必重新抛出它们(已检查异常的规则在JVM 字节码级别)。
您可以在 Java 代码中自由使用标准 try-catch
块来处理异常。
commons 邮件程序抛出什么样的异常?您指的是:https://commons.apache.org/proper/commons-email/javadocs/api-release/org/apache/commons/mail/Email.html#send--
send()
方法抛出一个 EmailException,它 不是 RuntimeException,因此会传播异常。如果 Play-Mailer 插件没有捕捉到它,您必须在您的代码中执行此操作:
try {
// try to send the mail
mailer.send(email);
} catch (EmailException e) {
// do something with the exception
}
我正在 Play 应用程序中使用 Play-Mailer。我能够将电子邮件发送到正确的电子邮件地址。到目前为止,一切都很好。 - 但是对于 none 现有的电子邮件地址,org.apache.commons.mailer
会抛出异常,但方法 mailerClient.send(email)
本身不会抛出任何异常。 - 有没有办法捕捉任何异常形式 Play-Mailer
?
编辑:
我查看了 Play-Mailer 插件,发现它是用 Scala 编写的。 Scala 没有检查异常的概念。 Scala 直接编译为 JVM 字节码,这就是 "trick" 如何在 Scala 中调用 Java 代码,它会抛出已检查的异常,但您不必重新抛出它们(已检查异常的规则在JVM 字节码级别)。
您可以在 Java 代码中自由使用标准 try-catch
块来处理异常。
commons 邮件程序抛出什么样的异常?您指的是:https://commons.apache.org/proper/commons-email/javadocs/api-release/org/apache/commons/mail/Email.html#send--
send()
方法抛出一个 EmailException,它 不是 RuntimeException,因此会传播异常。如果 Play-Mailer 插件没有捕捉到它,您必须在您的代码中执行此操作:
try {
// try to send the mail
mailer.send(email);
} catch (EmailException e) {
// do something with the exception
}